求爱因斯坦数学题.有一条长阶,若每步跨2阶,则最后剩1阶;若每步跨阶,
则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨7阶,则最后正好一阶不剩.
答;
#include
int main(void)
{
int steps = 29,i = 1;
while ( steps % 7 )
{
steps = (30 * ++i) - 1;
}
printf("Total steps:%d\n",steps);
return 0;
}
这是书上的答案,我看不懂它的算法,
人气:148 ℃ 时间:2020-05-14 23:13:41
解答
其实是个数学问题,知道了如何列式算这个题,也就知道算法.
若每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶,也就是说,每步跨2,3,5阶都是少1阶(即余数为-1).取最小公倍数得总阶数=30*n-1,n为正整数.
于是就有了程序,不断增大n,一直到30*n-1是7的倍数即可,也就满足了所有条件.
推荐
- 00000 00000 00000 000 0 连接各圆圈 ,不能重富 不能走斜线!
- 关于爱因斯坦的数学游戏,随便做运算可以知道起始数字的那个,请问一下怎么解的
- 解上来你就号称第二爱因斯坦
- 为什么爱因斯坦会说:“别担心你的数学,我跟你保证,我在数学上的困难比你还多“?
- "爱因斯坦的数学游戏"
- 为什么说昆虫是无脊椎动物中唯一会飞的动物?蝙蝠不也是吗?难道蝙蝠也是昆虫类的?不是哺乳类吗?
- 已知被除式是6a^(m+2)b^(n+1)-4a^(m+1)b^(n+1)+2a^(m+1)b^(n+2),商式是-2a^m b^n,求除式
- 爷爷过生日,大家祝福爷爷"福如东海,寿比南山"爷爷却感叹到:"__,__."我打住爷爷的话:"__,__.
猜你喜欢