循环打印算法:不拘一格编程序之一2010-01-28朱云翔小说中经常有人说某某将领打仗天马行空,不拘一格,让敌人防不胜防,比如《寻秦记》中的李牧;比如《大唐双龙传》中的寇少。编程序时也要有怎样的思想,不能被条条框框所束缚,比如这个例子:【例1】编写一个函数void fun(int t),要求在屏幕上打印t个“*”号,其中t的长度不会大于50。【设计1】:void fun(int t)
{
if (t<0 || t>50) return;
switch(t)
{
case 1: printf("*");break;
case 2: printf("**");break;
此处删除500字
case n: printf("*****......**");break;
}
}
以上方法虽然笨拙,但是时间复杂度为O(1),快!这是牺牲空间换取时间。当然,编写设计一的人员一般不多,绝大多数人使用设计2。【设计2】:void fun(int t)
{
int i;
if (t<0 || t>50) return;
for(i=0;i<t;i++) printf("*");
}
以上算法是最正宗的算法!优点是:程序相当简单,思路相当清晰。缺点是时间复杂度为O(t)。