今天在学习在练习C语言编程时,我感受到个人的编程思维的培养很重要,就拿今天做的2个趣味编程举例。
1,问555555的约数中最大的三位数
最简单的想法就是从2到555554之间的所有数去除555555,求出所有约数。但是这里只要求约数是三位数,即从100-999之间将除数的范围大大缩小;我就是这样想的但我的思维还是惯性思维程序如下:
#include <stdio.h>
int x,m=555555,i,count=0,max_HCF;
main()
{
for(i=100;i<=999;i++)
{
x=m%i;
if(x==0)
{ count++;
max_HCF=i;
// printf("i=%d ",i);
continue;
}
}
printf("max_HCF=%d",max_HCF);
}
这样写要计算17次而我看了一下给的例程只算了一次。只是将循环的数字大小的方向改了一下,程序如下:
main()
{ int i=555555;
Int j;
for(j=999;j>=100;j--)
{
if(i%j==0)
{
printf("j=%d ",j);
break;
}
}
}
这就显示了一个学编程思维的重要
2,求13的13次方的最后三位数
这个题按常规进行时13次方再求是明显不行的因为在C语言编程中整数的范围是有限的
从最后三位入手它值的大小只与乘数与被乘数有关与其他高位无关所以参考书程序编写如下:#include <stdio.h>
int i,x,y,last=1;
main()
{
scanf("%d%d",&x,&y);
for(i=1;i<=y;i++)
last=last*x%1000;
printf("%d",last%1000);
}
这些让我意识到自己编程思维培养的重要性。