定义函数Nicoqish(x)返回和为x的连续奇数的第一个和最后一个值,某一个数可能可以写成多组连续奇数和,只要求返回起始奇数最小的那一组信息。在主模块中输入数据n调用函数输出前n个数相关的式子。
输入
一个[1,20]之间的整数n
输出
[1,n]范围内的整数相关的多行式子
样例输入
5
样例输出
1^3=1
2^3=3+5
3^3=7+9+11
4^3=1+3+5+7+9+11+13+15
5^3=21+23+25+27+29
def Nicoqish(x):
k = x**3
i = 1
while i <= k:
s = 0
j = i # j>=i
while s<=k:
s += j
if s==k:
return i,j
j += 2
i+=2
你好这是我的解法【可能还有其他解法】
def Nicoqish(x):
x=x**3
i=1
j=1
while sum(range(j,i+1,2))!=x:
i+=2
if i>=x:
i=1
j+=2
if j>=x:
raise TimeoutError("数字%d不可以被写成连续奇数连加的形式")
return j,i