gsjdkdhh 2022-05-04 13:18 采纳率: 96.3%
浏览 159
已结题

python测试尼可彻斯定理

定义函数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

  • 写回答

1条回答 默认 最新

  • Unconquerable p 2022-05-04 15:48
    关注

    你好这是我的解法【可能还有其他解法】

    
    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
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 修改了问题 5月4日
  • 创建了问题 5月4日