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

来源:互联网 发布:Mac怎么打声调 编辑:程序博客网 时间:2024/04/30 09:21
尼克彻斯定理:
任何一个正整数的立方,都可以表示成若干个奇数的和
这个方法之前不知道在哪看过的,修改了下供大家欣赏,个人觉得代码执行效率挺高,代码精简。

#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;}



0 0