//尼克切斯定理
/*尼克切斯定理是指任何一个整数n的立方都可以写成n个连续奇数之和。
例如:1^3=1,2^3=3+5,3^3=7+9+11······*/
//求一个数的立方是哪几个连续奇数的和
#include <stdio.h>
void dl(int n,int* p)
{
int *p1,a,b,sum,s,i;
p1=p;//将a[0]的地址记录一下
s=n*n*n;
for(a=1;a<=s;a+=2)
{
for(b=a;b<a+2*n;b+=2)//生产连续基奇数数量
{
*p=b;
p++;
}
p=p1;
for(sum=i=0;i<n;i++)//求和
{
sum+=*p;
p++;
}
p=p1;
if(s==sum)//判断连续奇数之和是否等于这个自然数
break;
}
}
int main()
{
int n,i;
printf("请输入一个自然数:");
scanf("%d",&n);
int a[n];
dl(n,a);
printf("%d^3=",n);
for(i=0;i<n-1;i++)
printf("%d+",a[i]);
printf("%d",a[i]);
}
尼克切斯定理:求一个数的立方是哪几个连续奇数的和
于 2024-01-29 12:35:12 首次发布