验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19
一、尼科彻斯定理代码思路
1、首先要取一个正整数n,并计算出n的立方。
2、再设置一个循环,初始化数值为1,每次增加2,确保每次循环的数值都为奇数。
3、将从1开始的n个奇数相加,将每项的奇数存入预先设置的数组中,如果和等于n的立方则打印出加法等式,跳出循环,如果和不等于n的立方,则清空数据,把初始值加等于2变为3,再重复如上步骤。
二:代码实现
#include <stdio.h>
#include<math.h>
int main()
{
int m=0;
scanf("%d",&m);
int sum1=pow(m,3);
int sum2=0;
int k=1;
int a=k;
while(1)
{
sum2=0;
int arr[100]={0};
for(int i=0;i<m;i++)
{
sum2+=k;
arr[i]=k;
k+=2;
}
if(sum2==sum1)
{
for(int j=0;j<m;j++)
{
printf("%d",arr[j]);
if(j!=m-1)
printf("+");
}
break;
}
k=a+2;
a+=2;
}
return 0;
}
注意事项:在进行while(1)循环时,要设置条件break跳出,否则就会产生死循环。
三:打印每一个奇数项
如果题目要求输出等式的式子,则要申请一个数组空间,利用数组存储每一项。