竹逸 发表于 2022-3-11 15:55:23

坟贴

本帖最后由 竹逸 于 2022-11-20 17:57 编辑

rt

竹逸 发表于 2022-3-11 15:59:24

我是做不出来看了答案后,不太理解就修改了下,觉得自己修改后更加容易理解,是我的错觉吗,为什么理解不了小甲鱼老师else语句里的意思{:10_266:}

isdkz 发表于 2022-3-11 16:15:44

你的和答案里面的都没有问题,

不过你的多了一步没必要的,就是 steps = 0 的情况,

因为每步上7阶一阶不剩,所以阶梯数肯定是 7 的倍数,而且肯定不是 0,

所以答案里面 一开始就令 steps = 7,除 0 倍外,7的最小倍,然后 i 表示 7 的多少倍,

就是当阶梯数不满足条件就对阶梯数加倍 steps = 7 * (i + 1),用于下一次循环的判断

竹逸 发表于 2022-3-11 16:33:15

isdkz 发表于 2022-3-11 16:15
你的和答案里面的都没有问题,

不过你的多了一步没必要的,就是 steps = 0 的情况,


既然是加倍,那为啥是 7* (i + 1) ,不应该是7 * i 吗?就是这里搞不懂{:5_104:}

isdkz 发表于 2022-3-11 16:43:51

竹逸 发表于 2022-3-11 16:33
既然是加倍,那为啥是 7* (i + 1) ,不应该是7 * i 吗?就是这里搞不懂

答案的初始值就是 7 的 1 倍呀,i 的初始值就是 1,加倍就是 i + 1,

而你的给 steps 赋值为 0 是没有必要的,因为 steps 肯定不为 7 的 0 倍

竹逸 发表于 2022-3-11 17:01:05

本帖最后由 竹逸 于 2022-3-11 17:04 编辑

isdkz 发表于 2022-3-11 16:43
答案的初始值就是 7 的 1 倍呀,i 的初始值就是 1,加倍就是 i + 1,

而你的给 steps 赋值为 0 是没 ...

哦,懂了,谢谢老师{:5_106:},后面的+1是为了当条件不满足时,提前加1倍用于下一次循环的计算,是这个意思吧

isdkz 发表于 2022-3-11 17:06:45

竹逸 发表于 2022-3-11 17:01
哦,懂了,谢谢老师,后面的+1是为了当条件不满足时,提前加1倍用于下一次循环的计算,是这个 ...

对的,答案的放在 else 里面是得到了一个满足条件后就不再加倍来判断了,

所以答案得到最小的满足条件的阶梯数,

而你的放在 else 里面就会一直加倍用于下一次判断,但是你并没有把每次满足条件的结果存起来,

所以你的是得到的最大的满足条件的阶梯数

竹逸 发表于 2022-3-11 17:33:37

isdkz 发表于 2022-3-11 17:06
对的,答案的放在 else 里面是得到了一个满足条件后就不再加倍来判断了,

所以答案得到最小的满足条件 ...

嗯呢嗯呢
页: [1]
查看完整版本: 坟贴