2892150342ABC 发表于 2020-5-20 16:03:29

问个题

        大哥们看看这道题:
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)

题目:请编程求解该阶梯至少有多少阶?

老八秘制 发表于 2020-5-20 16:07:46

那底下不是有答案吗

最优解偏执狂 发表于 2020-5-20 16:15:03

int num = 0;
while(true){
    num++;
    if(num%2 == 1 && num%3 == 2 && num%5 == 4 &&num%6 == 5 && num %7 == 0){
      break;
    }   
}
printf("%d",num);

焦健鬼 发表于 2020-5-20 16:15:58

最优解偏执狂 发表于 2020-5-20 16:15


这是python

sunrise085 发表于 2020-5-20 16:17:15

本帖最后由 sunrise085 于 2020-5-20 16:18 编辑

x = 7            #台阶数初始值设为7,因为台阶数需要是7的倍数
for i in range(100):
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):         #这里判断前几个条件是否满足
      print('阶梯数是:', x)               #若满足条件,那就找到了该台阶数,将之输出
      break                                       #找到了,就不再继续循环了,break跳出循环
    x += 7                                       # 根据题意,x一定是7的整数倍,所以每次加7
else:                                                # 若循环结束了还没有跳出循环,会执行这里,说明在该范围内没有找到答案
    print('在程序限定的范围内找不到答案!')

2892150342ABC 发表于 2020-5-20 16:22:17

我不想看,发个帖子还能加点积分

2892150342ABC 发表于 2020-5-20 16:23:14

大哥们我的代码错在哪了print('爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。')
x%2 == 1
x%3 == 2
x%5 == 4
x%6 == 5
x%7 == 0
print(x)

显示报错:x没有赋值

Twilight6 发表于 2020-5-20 16:32:10

2892150342ABC 发表于 2020-5-20 16:23
大哥们我的代码错在哪了
显示报错:x没有赋值

没有这样写代码的啊...emmm

老八秘制 发表于 2020-5-20 16:32:34

2892150342ABC 发表于 2020-5-20 16:23
大哥们我的代码错在哪了
显示报错:x没有赋值

你连x都没定义……应该先初始化x为零,然后循环,不符合就x就+1,符合就输出

Twilight6 发表于 2020-5-20 16:36:24

2892150342ABC 发表于 2020-5-20 16:23
大哥们我的代码错在哪了
显示报错:x没有赋值

print('爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。')
i = 1
x = 1
while i < 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5) and (x%7 == 0):
      print(x)
      break
    i = i + 1
    x = 7*i
else:
    print('该范围内未找到~')

MangoF 发表于 2020-5-20 16:36:25

2892150342ABC 发表于 2020-5-20 16:23
大哥们我的代码错在哪了
显示报错:x没有赋值

你这代码有问题

你要先
x = 0   #赋值哈

再用逻辑运算符判断而不是换行呀!!!
i%2 == 1 and i%3 == 2 and i%5 == 4 and i%6 == 5 and i%7 == 0

MangoF 发表于 2020-5-20 16:42:14

i = 0
times = 1e4
while times:
    if i%2 == 1 and i%3 == 2 and i%5 == 4 and i%6 == 5 and i%7 == 0:
      print('%d' %i)
      i += 1
      times -= 1
      continue
    else:
      i += 1
      times -= 1

刚做完这一题,我用的是在1e4以内寻找,100以内根本没有{:9_227:}
页: [1]
查看完整版本: 问个题