Description
验证尼科彻斯定理,即:任何一个正整数的立方都可以写成一串连续奇数的和。
Input
任一正整数
Output
该数的立方分解为一串连续奇数的和
Sample Input
13
Sample Output
13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181
方法一:
#include<iostream>
using namespace std;
int main()
{
int n,i;
int sum=0;
cin>>n;
cout<<n<<"*"<<n<<"*"<<n<<"="<<n*n*n<<"=";
for(i=n*n-n+1; ; i+=2)
{
sum+=i;
cout<<i;
if(sum<(n*n*n))
{
cout<<"+";
}
else
{
break;
}
}
}
方法二:
#include<iostream>
using namespace std;
int main()
{
int i,n;
cin>>n;
cout<<n<<"*"<<n<<"*"<<n<<"="<<n*n*n<<"=";
for(i=n*n-(n-1); i<=n*n+(n-3); i+=2)
{
cout<<i<<"+";
}
cout<<n*n+(n-1);
}
方法二中利用该定理的规律编写此方法,该定理你会发现当你输入的值为多少时,就会有多少个连续的奇数相加,假设你输入的数为n,则第一个奇数为n*n-(n-1),最后一个奇数为n*n+(n-1),知道首尾可以很容易解决此问题。