原题链接:C语言训练-尼科彻斯定理
解题思路:
主要就是找到第一个数字的规律:a1=n*n-n+1
参考代码:
#include<stdio.h> int main(void){ int n,product; int a,sum; scanf("%d",&n); product = n*n*n; a = n*n-n+1; sum = a; printf("%d*%d*%d=%d=%d",n,n,n,product,a); while(sum!=product){ a = a+2; printf("+%d",a); sum = sum+a; } return 0; }
给自己记录下(上来就解题,没找规律的报错代码)
#include<stdio.h> #include<math.h> int main(void){ int num,sum=0; int n,i=0,j,k,h; int a[100]; int product; //int check; for(int j=0;j<100;j++) a[j]=0; scanf("%d",&num); product = pow(num,3); printf("%d*%d*%d=%d=",num,num,num,product); for(n=1;n<product;n=n+2){ if(sum<product){ a[i] = n; sum = sum+a[i]; i++; /* for(check=0;check<i;check++){ printf("a[%d]=%d ",check,a[check]); } printf(" sum=%d\n",sum); */ } if(sum>product){ for(j=0;sum>product;j++){ sum = sum-a[j]; } h = i-j; for(k=0;k<h;k++){ a[k] = a[j]; j++; } /* for(check=0;check<k;check++){ printf("a[%d]=%d ",check,a[check]); } printf(" sum=%d\n",sum); */ i = k; if(sum==product){ for(j=0;j<k-1;j++){ printf("%d+",a[j]); } printf("%d",a[j]); break; } } if(sum==product){ for(j=0;j<i-1;j++){ printf("%d+",a[j]); } printf("%d",a[j]); break; } } return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复