碰到一道算法面试题:
说有100只兔子和100块钱,大兔子3块钱一只,小兔子1块钱3只,用程序计算总共有多少只大兔子和小兔子,其中3块钱1只和1块钱3只中的3是输入,可以任意指定。
这其实是一道数学题,出题人把它美其名曰算法题,是估计要误导我们用计算机程序去遍历。
- N*X+Y/M=100
- X+Y=100
因为X和Y同时也代表了兔子的个数,所以只能是整数。
如果一定要用程序,也只是验证一个表达式的输出结果是不是整数,而非遍历。
X=(100*M-100)/(M*N-1)
$m=3 $n=3 $result = (100*$m-100)/($m*$n-1) if($result -is [int]) { "X={0},Y={1}" -f $result,( 100 - $result) } else{ "不成立" }
输出结果为:
X=25,Y=75
本文链接: https://www.pstips.net/100-rabbit.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
我读书少,你不要骗我!
输入都是固定的,类型是被确定的,IF 完全无意义。
有道理。但是在测试的时候,M和N完全有可能是不匹配的值,这样就会导致结果非整数。