首页 新闻 会员 周边 捐助

编程问题求教

0
[待解决问题]

求阶梯数:有一条长阶梯,若每步跨2阶,则最后剩下1阶;每步跨3阶,则最后剩下2阶;每步跨4阶,则最后剩下3阶;每步跨5阶,则最后剩下4阶;每步跨6阶,则最后剩下5阶;只有每步跨7阶时,才一阶不剩。请计算这条阶梯有多少阶。

鲁老手的主页 鲁老手 | 菜鸟二级 | 园豆:288
提问于:2018-12-28 15:42
< >
分享
所有回答(5)
0

C++代码如下:

include <iostream>

using namespace std;
int main()
{
int ans = 1;
while (1)
{
if (ans % 2 == 1 && ans % 3 == 2 && ans % 4 == 3 && ans % 5 == 4 && ans % 6 == 5 && ans % 7 == 0)
{
break;
}
++ans;
}
cout << ans << endl;
}

lif323 | 园豆:114 (初学一级) | 2018-12-28 15:53
0
徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-12-28 15:58
0

楼上正解,不过 把 ++ans改为,ans += 7; 并且从7开始, 稍微好点

muamaker | 园豆:763 (小虾三级) | 2018-12-28 16:56
0

我用这个java代码测过了,超过500万个数值符合条件,从119到1760705639都还没结束

public static void main(String[] args) {
    int ans = 7;
    ArrayList<Integer> ansList = new ArrayList<>();
    while (ansList.size() < Integer.MAX_VALUE){
        if (ans % 2 == 1 && ans % 3 == 2 && ans % 4 == 3 && ans % 5 == 4 && ans % 6 == 5 && ans % 7 == 0){
            ansList.add(ans);
        }
        ans++;
    }
    System.out.println(ansList);
}
huanzi-qch | 园豆:217 (菜鸟二级) | 2018-12-28 17:55
0

include

int main()
{ int x=7; /由题意可知,x为一个奇数,且是7的倍数,故可以每步跨14,进行一个循环/
while(x%3!=2||x%5!=4||x%6!=5)/剩下的三个条件作为循环的条件 /
x=x+14;
printf("%d\n",x);
}
结果:119

Rouehang | 园豆:202 (菜鸟二级) | 2018-12-28 18:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册