新手的每日一问
#include <stdio.h>int main()
{
int i, j, n, cubed, sum = 0;
printf("请输入一个整数:");
scanf("%d", &n);
cubed = n * n * n;
for (i = 1; i < cubed; i += 2)
{
for (j = i; j < cubed; j += 2)
{
sum += j;
if (sum == cubed)
{
if (j - i > 4)
{
printf("%d = %d + %d ... + %d\n", cubed, i, i+2, j);
}
else
{
printf("%d = %d + %d + %d\n", cubed, i, i+2, i+4);
}
goto FINDIT;
}
if (sum > cubed)
{
sum = 0;
break;
}
}
}
FINDIT:
return 0;
}
在课后作业验证尼科彻斯定理为什么j-i>4而不是大于3(虽然自己试了确实也需要大于4{:10_304:} ) #include<stdio.h>
int main()
{
int i,c=0;
for(i=1;i<=40;i++)
{
int t=(i-1)*i+1;
int sum=t*i+i*(i-1);
if(i*i*i==sum) c++;
}
printf("%d\n",c);
return 0;
}
既然是验证那就直接验证好了 2的三次方=3+5 ; 3的三次方=7+9+11; 4的三次方=13+15+17+19;
不信你输个2试试看,对不对。
(j - i > 4) 只是为了输出的时候以什么样子输出,小于等于4位就
这样输出:
请输入一个整数:3
27 = 7 + 9 + 11
大于4位则这样输出,加几个..中间的用...省略
请输入一个整数:8
512 = 17 + 19 ... + 47
换句话说,这里你想改成怎么输出都可以,多几个if就全搞定了
ba21 发表于 2019-3-18 11:20
2的三次方=3+5 ; 3的三次方=7+9+11; 4的三次方=13+15+17+19;
不信你输个2试试看,对不对。
好的,谢谢了 wp231957 发表于 2019-3-18 11:12
既然是验证那就直接验证好了
{:10_256:}谢咯
页:
[1]