打卡 c语言趣味编程 爱因斯坦的数学问题

发布时间 2023-05-17 16:26:34作者: 起名字真难_qmz

问题描述:  

  爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1~N内,有多少个数能满足?

思路:

  使用一个for循环来遍历从1到N的所有数,对于每个数i,使用取余运算符(%)来判断是否满足给定的条件。如果满足所有条件,则将计数器count加1。

最后输出满足条件的数的个数即可。

流程图:

 

代码实现:

#include <iostream>

int main() {
    int N;
    std::cout << "请输入一个正整数N:";
    std::cin >> N;

    int count = 0; // 记录满足条件的数的个数

    for (int i = 1; i <= N; i++) {
        if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0) {
            count++;
        }
    }

    std::cout << "在1~" << N << "内,满足条件的数的个数为:" << count << std::endl;

    return 0;
}