Python3输入正整数T,输出T可以由连续自然数和表示的所有情况及其数量

2 篇文章 0 订阅
1 篇文章 0 订阅

**# 输入正整数T,输出T可以由连续自然数和表示的所有情况及其数量

# '''
# 输入正整数T,输出T可以由连续自然数和表示的所有情况及其数量
# 如:输入9
# 输出:
# 9 = 9
# 9=4+5
# 9=2+3+4
# result = 3
# '''
while True:
    try:
        n = int(input())
        #判断是不是偶数,如果是偶数就只有一个
        '''
        1
        '''
        print('{0}={0}'.format(n))#总是有这种情况
        list1= ['%d'%n,'=']#'%d'%n---是将数字n转为字符类型的方式
        sum = 0
        num = 1#记录情况数
        list=[]
        for i in range(n//2+1,0,-1):
            for j in range(i,0,-1):
                sum = sum + j
                list.append('%d'%j)
                list.append('+')
                if sum == n:
                    num = num + 1
                    break
                elif sum != n and j == 1:#私以为这里加一种情况sum>n时,重置sum和list并会提高性能
                    list.clear()
                    sum = 0
                    break
            if len(list) != 0 :
                list.reverse()
            #输出
                for k in range(1,len(list)):
                    list1.append(list[k])
                str1 = ''.join(list1)
                print(str1)
                list.clear()#输出后重置列表
                list1= ['%d'%n,'=']#重置列表
                sum = 0
        print('result=',num)
    except:
        break
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值