解题思路:
首先,定义整数N;写出N从1到6的每一个数的尼科彻斯等式,观察规律;如下:

N

1^3=1                1=1^2+(1-1)

2^3=3+5                5=2^2+(2-1)                    3=1+2    

3^3=7+9+11              11=3^2+(3-1)                 7=5+2  

4^3=13+15+17+19          19=4^2+(4-1)              13=11+2   

5^3=21+23+25+27+29          29=5^2+(5-1)              21=19+2         

6^3=31+33+35+37+39+41         41=6^2+(6-1)              31=29+2          

……………………………………

N^3=                                                                = (N)^2+(N-1)                      = (N-1)^2+((N-1)-1)+2                                                          

根据上面规律归纳总结得到:

(1)N等于N个连续奇数的和;

(2)N的尼科彻斯等式中,第一个奇数,等于N-1的尼彻尼科彻斯等式中,最后一个奇数+2;

(3)N-1的尼科彻斯等式中,最后一个奇数等于(N-1)^2+( (N-1)-1);


编程思路就是:

  1. 输入一个整数N;

  2. 求出它的尼科彻斯公式中第一个奇数

  3. 循环输出N-1个奇数和加号(在第一个基础上加上2)

  4. 输出最后一个奇数,不带加号;


注意事项:
输出“1*1*1=1=”这部分时,如:printf("%d*%d*%d=%.0lf=",N,N,N,pow(N,3));
pow返回值不是int型,故不可以用%d,并且题目输出没有小数;

题目说让验证,不止一组测试值,以文件结束符结束;

运行图:

2017-12-12 21-42-50屏幕截图.png

参考代码:

#include<stdio.h>
#include<math.h>

int main()
{
int N;

while(scanf("%d",&N)!=EOF)
{
  int each_oddnum=pow(N-1,2)+(N-1-1)+2;

  printf("%d*%d*%d=%.0lf=",N,N,N,pow(N,3));

  for(int i=1;i<N;i++)
  {
    printf("%d+",each_oddnum);
    each_oddnum+=2;
  }
  printf("%d\n",each_oddnum);
}
return 0;
}


点赞(28)
 

0.0分

27 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 21 条评论

1710113082 6年前 回复TA
膜拜大神