解题思路:

看测试案列找规律:

           13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181

找到以下规律:

           1.后面要求和的奇数共有m个,如测试案列中要求和的奇数有13个

           2.再这些要求和的奇数中,中间的那个是m的平方,可以看到上面的案列第7个167,是13的平方

验证以上的规律:

            再以4为列:4*4*4=64=13+15+17+19

            当m是偶数的话,中间那位数就是m的平方-1

我们只需要通过以上的规律找到第一个奇数,然后每次让他自增2,执行m次,就解出来了

注意事项:
           可以看到如果测试案列是偶数的话,中间那位数就是m的平方-1,所以要分情况处理
参考代码:

n=int(input())
print("%d*%d*%d=%d="%(n,n,n,n*n*n),end="")

#start代表第一个奇数
start=0
if n%2==0:
   start=int((n*n-1)-(n/2-1)*2);

   #解释一下为什么是n-1。其实是执行n次,可以看下最后一行,这是一个编程技巧:因为最后一次打印不需要打印加号
   for i in range(0,n-1):

       print(start,end="+")
       start+=2
else:
     start=(n*n)-n+1
     for i in range(0,n-1):
         print(start,end="+")
         start+=2

print(start)

点赞(0)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论