求阶梯数:有一条长阶梯,若每步跨2阶,则最后剩下1阶;每步跨3阶,则最后剩下2阶;每步跨4阶,则最后剩下3阶;每步跨5阶,则最后剩下4阶;每步跨6阶,则最后剩下5阶;只有每步跨7阶时,才一阶不剩。请计算这条阶梯有多少阶。
C++代码如下:
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;
}
楼上正解,不过 把 ++ans改为,ans += 7; 并且从7开始, 稍微好点
我用这个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);
}
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