请问以下的C语言算法 哪个好????

来源:百度知道 编辑:UC知道 时间:2024/05/24 01:18:01
编一个程序,求出所有各位数字的立方和等于1099的3位数。

#include "stdio.h"
#include "conio.h"
void main()
{
// 第一个算法!!!
int a,b,c,i,s1,s2,s3;
for(i=100;i<999;i++)
{
a=i/100;
s1=a*a*a;
b=i/10-a*10;
s2=b*b*b;
c=i%10;
s3=c*c*c;
if(s1+s2+s3==1099)
printf("%d ",i);

}
// 第二个算法:
printf("\n");
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*a*a+b*b*b+c*c*c==1099)
printf("%d ",(10*a+b)*10+c);
printf("\n");

getch();
}

算法的时间复杂度一样,第二种可读性较好。

两个算法的时间复杂度是一样的,不过我建议采用第二中写法,很容易看懂,如果哦您是初学者,希望能养写类似第二种算法的习惯,这样会增加你得代码得可读性……

我感觉还是第一个好些因为初学者能很快的看明白,第二个有点难度!

第二个,总体执行次数较少