您的位置:首页 > 其它

对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方

2017-01-14 02:11 555 查看
题目:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。

分析:首先得出该整数num的立方n。对于这一连串的奇数,我们不能确定它的个数,但我们可以分析出它的个数不会超过这个整数num(这个应该可以理解~)。那么我们就可以得到一个范围那就是1到num之间的奇数,但至于到底有几个呢?好像不好得到。没关系,用for()循环来帮忙。让它遍历从1到num的所以的奇数,用变量sum来存放它们的和,并依次与立方n进行比较,如果相等了,那这就对了,输出来就好了~,如果比n大了,那么就不能再从1开始了,依次向后排从3,5……,就这样,我们就能找出我们所需要得数了,思路是不是很清晰呢?好了,来看看代码~

代码:

#include<stdio.h>
void main()
{
int i,j=0,n,k,sum=0,num,p=1,a[500],f=0,T=1;
printf("输入一个数在2到20之间\n");
scanf("%d",&num);
n=num*num*num;
for(i=p;i<n;i+=2)
{
if(sum<n)
{
sum+=i;
a[j++]=i;
f=0;
}
if(sum==n&&f==0)//
{
printf("第%d种\n",T++);
for(k=0;k<j;k++)
{
printf("%5d",a[k]);
}
printf("\n");
f++;
j=0;
i=p+=2;
sum=0;
i-=2;
}
if(sum>n)
{
j=0;
i=p+=2;
sum=0;
i-=2;
}
}
}


答案例:



上面这个就是其中一个运行结果啦~

欢迎联系我得qq:2516985331

一起学习~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐