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

来源:互联网 发布:python多进程框架 编辑:程序博客网 时间:2024/05/16 16:59

题目:对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[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

一起学习~


0 0
原创粉丝点击