用C语言证明任何一个自然数的立方等于 N 个连续奇数之和

例如:1*1*1 = 1;
2*2*2 = 3+5;
3*3*3 =7+9+11;
...
通过编程来证明,并且输入一个数要求输出对应的奇数
比如:我输入3
则输出应该为:7 9 11.

正确答案来了,在TC2下调试通过:

#include <stdio.h>

int test(int j,int i){
int k,s;
s=0;
for (k=i;k<j;k+=2){
s+=k;
if (s>j) break;
if (s==j) return k;
}
return 0;
}

void out_list(int i, int k){
int j,x;
x=32;
for (j=i;j<=k;j+=2){
printf("%c%d",x,j);
x='+';
}
}

void main()
{
int x,y,i,j,k;
scanf("%d",&x);
y=x*x*x;
for (j=1;j<y;j+=2)
if((k=test(y,j))!=0){
printf("%d^3=%d=",x,y);
out_list(j,k);
printf("\n");
break;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-29
正确答案来了,在TC2下调试通过:
#include
<stdio.h>
int
test(int
j,int
i){
int
k,s;
s=0;
for
(k=i;k<j;k+=2){
s+=k;
if
(s>j)
break;
if
(s==j)
return
k;
}
return
0;
}
void
out_list(int
i,
int
k){
int
j,x;
x=32;
for
(j=i;j<=k;j+=2){
printf("%c%d",x,j);
x='+';
}
}
void
main()
{
int
x,y,i,j,k;
scanf("%d",&x);
y=x*x*x;
for
(j=1;j<y;j+=2)
if((k=test(y,j))!=0){
printf("%d^3=%d=",x,y);
out_list(j,k);
printf("\n");
break;
}
}
第2个回答  2007-07-02
他说得对

用C语言证明任何一个自然数的立方等于 N 个连续奇数之和
printf("\\n");break;} }

c语言 任何一个自然数的立方等于连续奇数之和
可推出输入自然数n则:n^3=[n(n-1)+1]+………+ 后面为n个数。编程如下:include<stdio.h> int main(){ int n,m,i;printf("please input n:")scanf("%d",&n);m=n*(n-1)+1;printf("%d^3 = ",n);for(i=1;i<=n;i++){ printf("%d+",m);m=m+2;} printf("\\...

...任何一个自然数n的立方都等于n个连续奇数之和.要求输出相应的连续...
int n,i,sum,f,l,r;for(n=1;n<=15;n++){ sum=0;for(i=1;i<=2*n-1;i=i+2){ sum=sum+(n*n-n+i);} if(n*n*n==sum){ printf("%d^3=",n);f=sum\/n;if(f%2==1){ l=f-(n-1)\/2*2;r=f+(n-1)\/2*2;while(l<=r){ printf("%d+",l);l=l+2;} pr...

...验证:任何一个自然数n立方都等于n个连续奇数之和。要求对每个输入的...
'我们知道乘方是由乘法发展而来的,而乘法是由多个相同的数相加而来的。这样,'我们可以把n的立方变为n个数相加 , 即 'n的立方 = n的平方 + n的平方 + n的平方 + ……'一共有n项的多项式,相当于一个差值为0的等差的数列,'而只要把这个具有n项的数列变成相邻差值为2的奇数就可以实现题目...

c++,验证任何一个自然数n的立方都可以写成n个连续奇数之和,求修改
应该是对于一些列的奇数 做从该奇数开始 共计n个奇数的累加 直到和为立方值为止 这个是思路 接下来是我写的程序,中间对累加做了优化 采用等差数列求和公式 减少循环开销 供参考 include <iostream>using namespace std;int main(){int n;int i;int n3, sum;cin >> n;if(n > 1290 || n <...

...一自然数n,然后输出它的立方等于n个连续奇数之和,测试时出了问题,不...
可能是数据溢出,因为整型变量在内存中只有两个字节,所以范围在—32768---+32768这是有符号数的,若无符号:0--65535;32的立方刚好等于32768而33的立方就超过此范围了,如果想扩大范围的话,可以用长整型的,但范围也大不了哪去,毕竟你用的是立方数。

输入一个正整数n[小于30],输出结果是n个连续奇数的和[结果等于n的立方...
按照题目要求编写的n的立方等于n个连续奇数和的C语言程序如下 因为n的立方等于关于n的平方两侧对称的连续奇数和,所以有如下程序 include<stdio.h> int main(){ int n,i;scanf("%d",&n);if(n<30){ for(i=n*n-n+1;i<=n*n+n-1;i+=2){ if(i==n*n+n-1)printf("%d\\n",i);el...

c语言编程验证:任何一个自然数m的立方均可以写成m个连续的奇数之和...
{ int n, i, k, flag = 1, s = 0;do { scanf("%d", &n);for (k = 1; flag == 1; k = k + 2)for (i = 0, s=0; i < n; i++, k = k + 2){ s = k + s;if (n * n * n == s){ flag = 0;for (i = 0; i < n; i++, k = k - 2)prin...

用c语言:输入一个自然数,求这个自然数的所有约数之和,
回答:#include<stdio.h> void main() { int n,i,s=0; scanf("%d",&n); for(i=1;i<=n;i++) if(n%i==0) s+=i; printf("%d\\n",s); }

c语言编程:输入一个自然数n,求组成n^3的n个连续奇数
1,if(i==n) break;你这一句是不是有点多余?为什么不放在:for(i=1;i<=n;i++)?2,a=n*n-(n-1)+j*2;你的外部循环,也就是i几乎没有用,仅仅是用来增加循环次数而已,所以最小值都是7 = 3*3-2+0

相似回答