标签:题目 运行 连续 但我 oid 程序 images 技术分享 开始
题目:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
分析:首先得出该整数num的立方n。对于这一连串的奇数,我们不能确定它的个数,但我们可以分析出它的个数不会超过这个整数num(这个应该可以理解~)。那么我们就可以得到一个范围那就是1到num之间的奇数,但至于到底有几个呢?好像不好得到。没关系,用for()循环来帮忙。让它遍历从1到num的所以的奇数,用变量sum来存放它们的和,并依次与立方n进行比较,如果相等了,那这就对了,输出来就好了~,如果比n大了,那么就不能再从1开始了,依次向后排从3,5……,就这样,我们就能找出我们所需要得数了,思路是不是很清晰呢?好了,来看看代码~
代码:
1 #include<stdio.h> 2 void main() 3 { 4 int i,j=0,n,k,sum=0,num,p=1,a[500],f=0,T=1; 5 printf("输入一个数在2到20之间\n"); 6 scanf("%d",&num); 7 n=num*num*num; 8 for(i=p;i<n;i+=2) 9 { 10 if(sum<n) 11 { 12 sum+=i; 13 a[j++]=i; 14 f=0; 15 } 16 if(sum==n&&f==0)// 17 { 18 printf("第%d种\n",T++); 19 for(k=0;k<j;k++) 20 { 21 printf("%5d",a[k]); 22 } 23 printf("\n"); 24 f++; 25 j=0; 26 i=p+=2; 27 sum=0; 28 i-=2; 29 } 30 if(sum>n) 31 { 32 j=0; 33 i=p+=2; 34 sum=0; 35 i-=2; 36 } 37 } 38 }
上面这个就是其中一个运行结果啦~
欢迎联系我得qq:2516985331
一起学习~
标签:题目 运行 连续 但我 oid 程序 images 技术分享 开始
原文地址:http://www.cnblogs.com/wobrm-zxm/p/6284523.html