前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >训练场优秀题解-尼科彻斯定理【图文并茂】

训练场优秀题解-尼科彻斯定理【图文并茂】

作者头像
编程范 源代码公司
发布2018-04-18 12:06:23
6010
发布2018-04-18 12:06:23
举报

原题链接:【C语言训练】尼科彻斯定理

http://www.dotcpp.com/oj/problem1127.html

解题思路: 首先,定义整数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,并且题目输出没有小数;

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

运行图:

参考代码:

代码语言:javascript
复制
#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;
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程范 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档