尼科彻斯定理
尼科彻斯定理内容
任何一个整数的立方都可以写成一串相邻奇数之和 ( 因为如果不是一串相邻的奇数,这个奇数组合可能会有多个 )
例如:
1的三次方是1;2的三次方=3+5;3的三次方=7+9+11等等
题目
编程验证该定理,即输入一个数,输出这个数的三次方用相邻奇数串的表示
题目分析
通过数学思想,即数学的证明来构造代码思路
我们先枚举一下
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;
通过这我们可以观察到数字n的三次方可以由n^2左右的n个奇数相加得到
再经过观察,从1到5,这些奇数是连续的,当然这对程序设计没有帮助,因为我们是要验证尼科彻斯定理,而不是去根据尼科彻斯定理输出一个数三次方的连续奇数加
(1)我们可以去枚举一个数字n的连续n个基数和,我们就要确定奇数范围
(2)n^3和连续奇数项最大值不会超过它自己的三次方,不会小于他自己
代码示例
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num;
if(n%2==0)
num=n-1;
else
num=n;
int sum;
for(int i=num; i<=n*n*n; i+=2)
{
sum=0;
for(int j=i,k=1; k<=n; k++,j+=2)
{
sum+=j;
}
if(sum==n*n*n)
{
cout<<n<<" * "<<n<<" * "<<n<<" =";
for(int j=i,k=1;k<=n;k++,j+=2)
{
cout<<" "<<j<<" ";
if(k!=n)
{
cout<<"+";
}
}
break;
}
}
return 0;
}