编程基础 4
Question 5
条件的代码要研究一下 啥资料都不看,纯靠自己感觉写的话,会出现如下问题
期间我想到可以用elseif 结果不尽如人意,没想到竟然是拼写错误...代码里要写成 elsif才对...
然后在此运作正常的基础上,再改了一些,把不需要的 to_f给去掉了也能运作
Question 6
数值对比的时候,还是要先转换成integer 不然会报错
elsif x.to_i < 0
如果不加 to_i就会报错
Question 7
一开始有点慌,强行劝自己镇定点并拿出数学系的神器——草稿纸,结果十分钟之内就搞定了
梳理出网络状的逻辑关系,一层层的写好逻辑就搞定了哈哈哈
Question 8
同样一开始毫无头绪,后来一想,估计也是一层层的写条件逻辑来达成目的
Thought One
三个数值,两两相比,大的再跟第三个比,最后必定得出最大的
用 x > y 还是 x < y 当第一层的筛选逻辑即可? 不对,这样可能会有遗漏...
救命 要谨慎
Thought Two
概率问题 用数学思维思考的话 问题被抽象为
“在三个空出来的位置上 摆放 x y z 三个字母一共多少种组合可能?”
比如 x < y < z 这就是一种摆放方法
所以应该是 3 X 2 X 1 即共六种可能
按照这个逻辑去写代码 就能把全部情况包含进去啦~
嗯 具体写代码时,还是用第一种thought写吧...
欧耶 这写法是对的,就是没有用上哪些 && 或者 || 符号们哈哈哈
还在想没有用上有没有问题,因为教程一般很严谨,果然出问题 测试数值出现如下情况
赶紧开irb测试一下 发现独自判断是对的
所以我估计,还是要用上 && 才能保证结果正确啊
再催死挣扎测试一次
为了找出问题 再测试了一组数据
出现了本不应该出现的 x 结果 这个结果应该只出现在 前半部分 即 x > y的大前提下的,所以不用 && ||这类的符号 果然会导致判断乱跑啊...就是按照代码的优先顺序去执行...
等等 不对 也不是按照优先顺序执行 又跑一组数据测试
这个就不显示 x 了吖 hmmm
老老实实去改了 还是有问题
测试的数值还是有问题
嗯? 等等 再回去看看语法 发现一个地方估计要改?
要加个括号?!不然不能正确执行?
再测试了几个数据后,我怀疑是要添加一个to_f不成?!
如果再把 “else”的部分删掉...
这下怎么测试都没问题了...呼~~总算
这样一思考,感觉没有加 to_f 之前都是默认的stringtype导致比较长的数据自然被当成“大”的数据了吧?无视了小数点导致?