【问题标题】:python 2.7.6 math programpython 2.7.6 数学程序
【发布时间】:2014-02-19 05:42:32
【问题描述】:

好的,我需要帮助的程序可能没有那么复杂,但我对此感到非常困惑。以下是我的指示:

编写一个程序,要求用户输入一个整数,然后计算出您必须将多少个整数(从 1 开始)相加才能使总和大于用户输入的值。即找到数字“n”,使得 1 到 n 的整数之和大于用户输入的值,但 1 到 (n-1) 的整数之和小于或等于用户输入的值。您的输出应该是描述性消息,包括数字 n 和从 1 到 n 的数字之和;比如:

请输入一个整数:1000 将 1 到 45 的整数相加得到 1035

我已经做到了这一点: inp = input('请输入一个整数。') 如果你能指出我正确的方向,那就太好了。 编辑:

我怎样才能让这个也打印出来?

编辑:

我试图将下面的答案更改为:

n = input ('Please enter an integer. ')
sum = 0
i = 1
while sum < n:
    sum = i
    i + 1 = i
if sum > n:
    print 'Summing the integers from 1 to ' + i + 'gives' + sum

我收到一条错误消息,提示我无法分配给第六行的操作员

【问题讨论】:

  • i = i + 1i += 1。您也不应该使用 sum 作为变量名,因为标准 Python 库中已经有一个函数 sum()

标签: python-2.7


【解决方案1】:

嗯,有明显的方法和更聪明的方法 显而易见的方法是添加数字直到它们更大:

sum = 0
i = 1
while sum < inp:
    sum += i
    i += 1

数字 1 到 n 的总和由 n * (n+1) / 2 给出,因此您可以在给定 inp 的情况下求解 n,您可能需要正根

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    相关资源
    最近更新 更多