第五题咋看啊,没看懂。

img


我想问的是从哪个地方可以判断他是从157开始的,不可以是1吗?第二个for停止的条件是什么,最后输出填啥啊?

供参考:

#include <stdio.h>
int main()
{
    long int n,i,k,j,sum;
    printf("Enter n=");
    scanf("%ld", &n);
    k = n * n * n;
    for (i=1; i<k/2; i+=2)
    {
        for (j=i,sum=0;j<i+2*n; j+=2)
            sum += j;
        if (sum == k)
            printf("%ld*%ld*%ld=%ld=from %ld to %ld\n",n,n,n,sum,i,j-2); 
    }
    return 0;
}

该题并未叙述完全,应该加上输入的数为多少,就有多少个连续的奇数相加,比如输入13,就可以等于13个连续的奇数相加。

img

因此第一空可填 sum<k; 第二空可填 &&(j-2-i)/2+1==n;第三空可填 j-2.
完整代码如下:

#include<stdio.h>
int main()
{
    long int n,i,j,sum,k;
    printf("enter n=");
    scanf("%ld",&n);
    k=n*n*n;
    for(i=1;i<k/2;i+=2)
    {
        for(j=i,sum=0;sum<k;j+=2)
            sum=sum+j;
        if(sum==k&&(j-2-i)/2+1==n)
            printf("%ld*%ld*%ld=%ld=from%ldto%ld\n",n,n,n,sum,i,j-2);
    }
    return 0;
}