c语言 任何一个自然数的立方等于连续奇数之和

验证上面结论:如,1^3=1;2^3=3+5;3^3=7+9+11
要求:程序对每个输入的自然数计算并输出相应的连续奇数

我的要求,用比较简单的循环语句,就IF,WHILE之类,不出现复杂的结构和语法.
简洁,一语中地.
我们还没学TEMP 之类的语句,应该老师布置出来不会用这些,请大家再弄些简单的,就只有简单的循环语句

先分析规律有:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
5^3=21+23+25+27+29
6^3=31+33+35+37+39+41

可推出输入自然数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("\b\n");
}

注意\b的作用是退格,从而删掉最后一个数后面的加号。
输出结果为 列如n=4: 4^3 = 13+15+17+19
希望能帮到你。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-11-20
我写了个,楼上的虽然简单但是基于找到了规律,像我这种笨脑袋可想不到,所以我写了一般化的,希望你喜欢哈~~
include<stdio.h>
void main()
{
int n,n3,i,j,k=0,f=0;
char q='\0';
scanf("%d",&n);
if(n<=0)
printf("data is error");
else
{
n3=n*n*n;
for(i=1;i<=n3;i+=2)
{
k=0;
for(j=i;j<=n3;j+=2)
{
k+=j;
if(k>=n3)break;
}
if(k==n3)break;
else if(k>n3)continue;

}
printf("%d*%d*%d=%d=",n,n,n,n3);
for(;f<n3;i+=2)
{
f+=i;
printf("%c%d",q,i);
q='+';
}
}
}
第2个回答  2007-11-20
void func(int n)
{
int total = n*n*n;

for(int start=1; start<=n; start+=2)
{
int temp = 0;
for(int end=start;end<=n;end+=2)
{
temp += end;
if( temp>=total ) break;
}
if(temp==total)
{
for(int oddNumber=start;oddNumber<=end;oddNumber+=2)
{
printf("%d\r\n", oddNumber);
}
break;
}
}

}

==================
这里面就只有 if / for 语句啊。 temp, start, end 什么的是变量而已
int temp = 0; 是定义了一个变量啊
第3个回答  2007-11-20
只要该数的立方 除3为基数就可以,算法如下:
for(i=1;1<=100;i++) //1--100的情况
{
if((i*i*i)%3==0 && (i*i*i/3)%2==1) printf("%d is:%d + %d + %d\n",i,i*i*i/3-2,i*i*i/3,i*i*i/3+2);
}

打完收工
第4个回答  2007-11-20

c语言 任何一个自然数的立方等于连续奇数之和
1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 5^3=21+23+25+27+29 6^3=31+33+35+37+39+41 可推出输入自然数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...

用C语言证明任何一个自然数的立方等于 N 个连续奇数之和
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,...

c语言编程验证:任何一个自然数m的立方均可以写成m个连续的奇数之和...
include <stdio.h> int main(){ 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,然后输出它的立方等于n个连续奇数之和,测试时出了问题,不...
可能是数据溢出,因为整型变量在内存中只有两个字节,所以范围在—32768---+32768这是有符号数的,若无符号:0--65535;32的立方刚好等于32768而33的立方就超过此范围了,如果想扩大范围的话,可以用长整型的,但范围也大不了哪去,毕竟你用的是立方数。

正整数2345的各位数字平方和怎么用C语言编写
正整数立方和公式 平方和原理 在c语言中char型数据 编写判断素数的函数 其他类似问题2013-06-24 C语言——计算正整数2345的各位数字的平方的和 2 2011-11-15 下面程序的功能是计算正整数2345的各位数字平方和,请选择填... 7 2015-10-23 c语言数码平方和 2012-03-06 输入一个五位的正整数,求各位...

C语言求最大公因数和最小公倍数的N种方法?
后把所有的除数连乘起来,所得的积就是这几个数的最大公约数。短除法求最小公倍数,先用这几个数的公约数去除每个数,再用部分数的公约数去除,并把不能整除的数移下来,一直除到所有的商中每两个数都是互质的为止,然后把所有的除数和商连乘起来,所得的积就是这几个数的最小公倍数,例如,求12、15、18的...

有没c++的题集及答案
假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的A,B,C之和的最大值是多少?4、勾股弦数是满足公式: A^2+B^2=C^2 (假定A<B<C)的一组正整数(A,B,C),例如,(3,4,5)是勾股弦数,因为:3^2+4^2=5^2。求A,B均小于25且A+B+C<=100的勾股弦数的个数。5、勾股弦数是满足...

自然数包括0吗
自然数包括0。自然数由0开始,一个接一个,组成一个无穷的集体。自然数有有序性,无限性。分为偶数和奇数,合数和质数等。自然数是一切等价有限集合共同特征的标记。整数包括自然数,所以自然数一定是整数,且一定是非负整数。自然数集N是指满足以下条件的集合:①N中有一个元素,记作1。②N中每一...

0!和!0的不同 有知道的帮忙解释下
任何大于1的自然数n阶乘表示方法: n!=1×2×3×……×n 0!=1 表示0的阶乘等于1 !0 不知道这个的数学含义 0既不是整数也不是负数,而是正数和负数之间的一个数。当某个数X大于0(即X>0)时,称为正数;反之,当X小于0(即X<0)时,称为负数;而这个数X等于0时,这个数就是0。

相似回答