【牛客网 - 华为机试 - HJ76 尼科彻斯定理】

描述

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。

数据范围:1\le m\le 100\1≤m≤100

进阶:时间复杂度:O(m)\O(m) ,空间复杂度:O(1)\O(1)

输入描述:

输入一个int整数

输出描述:

输出分解后的string

思路:

step1:输入一个数字,同时创建一个列表,便于保存奇数;

step2:对n*(n-1)+1 至 n*(n+1),每隔一个数进行遍历,并将他们添加至列表中;

step3:对c逐一遍历,如果遍历到最后一位,直接打印i;其余都要把+带上

代码如下:

n = int(input())
c = []
for i in range(n*(n-1)+1,n*(n+1),2):
    c.append(i)
for i in c:
    if i == c[-1]:
        print(i)
    else:
        print(i,end='+')

题解 | #尼科彻斯定理#_牛客博客

你可能感兴趣的:(牛客网习题,华为,python)