基础编程 6
Question 11
又是一个十多分钟搞定的问题,教程编写思路真的很赞,一下子引导你领悟很多
最想提醒自己的是
i+=1
就是 i = i +1
的意思哦~ 往下一个数值继续测试下去的意思~
我尝试的第一版长这样

尝试另一个写法

如果这样写,逻辑就有问题了,即只有整除数的情况下才加一往下继续测试跑数
这样的逻辑写法就会卡着咯 等了几分钟还是完全不运行
你想啊 第一个测试的数值是 1
结果就不满足if
的条件,就无法执行 i += 1
就卡着不执行了吖
Question 12
预想的代码写法几乎考虑到 唯一漏掉 total = 0
这个想法...嗯 有趣 为啥一开始要设置成 0 这个数值呢?也是为了展现它的变化吗?

啊!!!难道是为了不让负数的偶数相加?!
不对呀...i
已经设定为从 1
开始 并且设定小于 100
了所以不会出现负数吖?
想不通,那么就去掉这条件看看结果会如何
删掉 total = 0
运行看看

噢哟 报错了耶
我估计还是要给total一个定义范围所以才加这行的?

好奇啊! 就改成其他数值看看
结果哈哈哈哈

跟我猜测的负数没啥关系 仅仅是个起始数值的设定而已啊哈哈哈
很重要很重要,清零的起始数值才能完全体现i
本身的偶数们哈哈哈!
Question 13
提示的代码跟我一开始思考的差不多,就是没有想到居然是个多层嵌套的while...
我一开始以为这样

结果一执行 发现问题

不是题目要求的啊 少了好多项 果然嵌套的while条件是有用的!
逻辑有点难梳理,就想偷懒 写成如下样子

自以为能搞定 结果一看...最后那一下绝对有问题

然后还是偷懒的贼心不死...

被无限执行到傻眼...

推测无限执行是因为我定义了 a = i + 1
按照执行顺序就一直符合while的条件 a.to_i <= n.to_i
因为执行先后顺序的关系 a
一直被认为是 1 导致永远小于 n, 就一直无限执行了
再改!

我真实懒到没救 数学系真实本命属性了

别挣扎了 老老实实用嵌套的while条件写吧...

再改了一点

说实话,这样改其实只是为了搭配答案,没有真的体现出 if
跟 while
的区别吧...算硬改的...
Question 14
感觉教程的提示出错了,应该是“从1到N-1”吧,不可能是 N/2
这个数绝对能整除于 N的哈哈哈 估计是笔误吧?

比想象的复杂啊,这样写无法正常判断...

有意思 不过这是我乱尝试出来的 估计还要更好的写法 可以继续思考
Question 15
原来生成随机数的代码是 rand()
啊~
比如 rand(100)
就是100中挑一个随机数生成哈哈哈

嗯,其实感觉能用 if
elsif
else
这三个条件把三个判断条件整合在一起 这样代码看起来更顺畅...