【问题标题】:Finding the sum of numbers from x to y and the program prints the answer as "x+(x+1)....+y= (sum of # from x to y)" [closed]找到从 x 到 y 的数字总和,程序将答案打印为“x+(x+1)....+y= (# 从 x 到 y 的总和)”[关闭]
【发布时间】:2020-06-27 04:45:22
【问题描述】:

例如,从 1 到 3 的数字之和将打印为 1+2+3=6;程序打印答案以及被加在一起的数字。如何做到这一点?非常感谢任何帮助,因为我尝试过的任何方法都没有奏效。我一直在尝试使用求和公式来获得答案,并使用循环来将数字相加......但没有成功。虽然提示是使用 for 循环,但我不确定如何将其合并到程序中。练习提示还说我不能使用 sum 或 .join 函数 :(,我知道这会让事情变得容易得多。天哪,我很抱歉忘记提及它。

【问题讨论】:

  • 不能用join吗?
  • @AstikGabani 忘了提...不,不允许使用 .join 或 sum 函数
  • 您可以发布您尝试过的内容吗?
  • 看起来您已经得到了很多好的答案,但是发布您尝试过的代码(即使它不起作用)表明您已经做出了真诚的努力。如果您想获得更多答案以及未来的问题,请记住这个问题,但我理解,因为您是 stackoverflow 的新手。干杯!
  • @DerekO 我下次发帖时一定会记住这一点!感谢您的提示!

标签: python imperative-programming


【解决方案1】:

试试这个

x = 3
y = 6

for i in range(x, y+1):
    opt_str += str(i) + "+"
    sum += i

print(opt_str[:-1] + "=" + str(sum))

输出:

3+4+5+6=18

【讨论】:

    【解决方案2】:

    您可以使用连接和列表推导来组装字符串。

    n1 = 1
    n2 = 3
    
    li = str(n1)+"".join(["+"+str(i) for i in range(n1+1,n2+1)])+"="+str(sum(range(n1,n2+1)))
    print (li)
    

    输出:

    1+2+3=6 
    

    【讨论】:

    • 查看 OP 在帖子下的评论:“join or sum function are not allowed”
    • 不,我忘了提...这是我的错。我现在修复了这个帖子。
    【解决方案3】:

    你可以试试这个

    def problem1_3(n):
       return n + problem1_3(n-1) if n > 1 else 1
    

    或在下面尝试

    n = 0
    sum = 10
    for num in range(0, n+1, 1):
       sum = sum+num
    print("SUM of first ", n, "numbers is: ", sum )
    

    输出

    SUM of first  10 numbers is:  55
    

    【讨论】:

      【解决方案4】:

      一个有趣的方法是一次打印一点。在打印中使用end='' 以避免换行:

      num = 3
      sum = 0
      
      for i in range(1,num+1):
          sum += i
          if i>1:
              print ("+", end='')
          print(i, end='')
      print("=%d" % sum)
      

      1+2+3=6

      【讨论】:

        【解决方案5】:

        最简单的方法是使用for 循环和print() 函数

        def func(x,y):
            sum = 0
        
            #Loop for adding
            for i in range(x,y+1):
                sum+=i
        
            #Loop for printing
            for i in range(x,y+1):
                if i == y:
                    print(i,end = '')
                else: print(i," + ",end = '')
            print(" = ",sum)
        

        print() 函数的 end 参数指定打印的字符串将以什么结尾,而不是默认的换行符。

        因此,对于您的示例, func(1,3) 将输出:1 + 2 + 3 = 6

        【讨论】:

          【解决方案6】:

          代码如下:

          print("Finding the sum of numbers from x to y")
          print("Please specify x & y(x<=y):")
          x = int(input(" x:"))
          y = int(input(" y:"))
          numbers = [x]
          result = f"Sum: {x}"
          
          for i in range(1,y-x+1):
              numbers.append(x+i)
              result += f"+({x}+{i})"
              
          print(f"{result} = {sum(numbers)}")
          

          输出:

          Finding the sum of numbers from x to y
          Please specify x & y(x<=y):
           x:1
           y:10
          Sum: 1+(1+1)+(1+2)+(1+3)+(1+4)+(1+5)+(1+6)+(1+7)+(1+8)+(1+9) = 55
          

          输出2:

          Finding the sum of numbers from x to y
          Please specify x & y(x<=y):
           x:2
           y:6
          Sum: 2+(2+1)+(2+2)+(2+3)+(2+4) = 20
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-06-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多