【C语言代码】尼克彻斯定理

本文提供两种不同的算法实现来验证尼科斯特定理:任意正整数的立方可表示为若干个奇数之和。一种算法展示了具体的奇数序列,而另一种仅验证定理的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尼克彻斯定理:
任何一个正整数的立方,都可以表示成若干个奇数的和
这个方法之前不知道在哪看过的,修改了下供大家欣赏,个人觉得代码执行效率挺高,代码精简。

#include <stdio.h>

int main()
{
	int a, b, c, d;
	printf("Please Input a num : ");
	scanf("%d",&a);

	if( (a < 1) || (a > 100))
		return -1;

	b = a * a * a ;
	printf("The num's cube is : %d = ",b);
	for (d = 0, c = 0; c < a; c ++)
	{
		d += a * a - a + 1 + c * 2 ;
		printf(c ? "+%d" : "%d", a * a - a + 1 + c * 2 );
	}

	if(b != d)
		return -1;
	printf("\n");

}

还有另外一种算法,只是验证了尼科斯特定理,并没有全部输出所有奇数,大家可以自行修改再运用。

#include "stdio.h"

void Nicoqish(int N)
{
	int i = 0,j = 0, sum = 0;
	for(i = 1; i < N * N * N ;i += 2)
	{
		for(j = i; j < N * N * N ;j += 2 )
		{
			sum = sum + j;

			if(N * N * N == sum)
			{
				printf("%d = %d+%d...+%d\n",N * N * N, i,i+2,j);
				return;
			}

			if(N * N * N < sum)
			{
				sum = 0;
				break;
			}
		}
	}
}

int main()
{
	int N;
	printf("Please input a integer to verify Nicoqish Law\n");
	scanf("%d",&N);
	Nicoqish(N);
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨鸟快飞呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值