moogin 发表于 2020-4-17 14:44:05

求解不等式python

本帖最后由 moogin 于 2020-4-17 14:50 编辑

新手求教!键盘输入一个正整数给m,计算并返回满足表达式:
1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。

txxcat 发表于 2020-4-17 15:06:46

往下翻翻,刚有人问过了。还是直接点这个吧:https://fishc.com.cn/thread-166028-1-1.html

sunrise085 发表于 2020-4-17 15:07:14

你们这是组团来这里找人代写作业么?
def fun(max_num):
    sum1,sum2=0,0
    n=0
    while sum1<=max_num:
      n+=1
      sum2+=n
      sum1+=sum2
    return n-1
print("n=%d"%fun(10000))

fan1993423 发表于 2020-4-17 15:09:20

你跟那个kllly是用一个班的吗?都留的这个作业?
m=int(input('请输入一个正整数'))
count,n,=0,0
while count<=m:
    count=0
    n+=1
    for i in range(1,n+1):
      count+=i*(n-i+1)
print(n-1)

fan1993423 发表于 2020-4-17 15:13:39

本帖最后由 fan1993423 于 2020-4-17 15:14 编辑

或者这样,这两个版本都用的乘法,比纯加法更快
m=int(input('请输入一个正整数'))
count,n,=0,0
while count<=m:
    count+=n*(n+1)/2
    n+=1
print(n-1)

sunrise085 发表于 2020-4-17 15:25:25

fan1993423 发表于 2020-4-17 15:13
或者这样,这两个版本都用的乘法,比纯加法更快

你确定你的更快吗?
你在五楼的程序比四楼快,每次循环需要三次加法,一次乘法,一次除法
而我在三楼的程序,每次循环只用三次加法。

程序中加法要比乘法运算速度快,而且我程序运算次数要比你的少。

_2_ 发表于 2020-4-17 19:18:34

sunrise085 发表于 2020-4-17 15:07
你们这是组团来这里找人代写作业么?

……而且好多人都懒得做

fan1993423 发表于 2020-4-17 20:35:06

sunrise085 发表于 2020-4-17 15:25
你确定你的更快吗?
你在五楼的程序比四楼快,每次循环需要三次加法,一次乘法,一次除法
而我在三楼的 ...

四楼是比较慢了,毕竟两个循环。五楼速度不错,跟你一样,测试了100万亿,也是秒出答案
页: [1]
查看完整版本: 求解不等式python