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

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:57:54
这个 题目改怎麼写~~~
要写的简单点的 我只学过 if while for 这些
怎么写比较容易理解~~~
验证上面结论:如,1^3=1;2^3=3+5;3^3=7+9+11
要求:程序对每个输入的自然数计算并输出相应的连续奇数

不要在难啊 我只会简单的 while for if 这种级别的~~~~

不知道楼主注意没:
1^3=1^2-0^2=(1-0)*(1+0)=1*1;
2^3=3^2-1^2=(3-1)*(3+1)=2*4;
3^3=6^2-3^2=(6-3)*(6+3)=3*9;
因此我只要找出你输入的自然数两个同号的因子a,b。
然后利用x-y=a;x+y=b;求出x,y.就可以了
程序如下:
#include <stdio.h>
#include <math.h>

int main()
{
int n;
scanf("%d",&n);
int data=(int)sqrt(n);
int a,b,x,y,i,j;
for(i=1;i<=data;i++)
{
if(n%i==0)
{
a=i;
b=n/i;
if(((a+b)&1)==0)
{
x=(a+b)/2;
y=(b-a)/2;
break;
}
}
}
int begin=2*y+1;
int end=2*x-1;
printf("%d=",n);
for(j=begin;j<end;j+=2)
{
printf("%d+",j);
}
printf("%d\n",end);
return 0;
}

这个题目什么意思看不明白

VC6.0下测试通过

#include <stdio.h>
typedef unsigned char U8;
typedef unsigned short U16;
typedef unsigned long U32;
U16 m,n;