用C++语言。输入五个正整数a,b,c,d,e。。 1C

给定你五个正整数,它们最小众倍数是指能够被其中至少三个数整除的最小正整数。
给定你各不相同的整型a, b, c, d以及e。请返回它们的最小众倍数。
输入:
输入五个正整数a,b,c,d,e。a, b, c, d以及e中每个的取值范围都在1和100之间(其中包括1和100)。a, b, c, d以及e各不相同
输出:
返回它们的最小众倍数
举例:
a = 1 b = 2 c = 3 d = 4 e = 5, 返回4。4能够被1,2以及4整除,满足五个数中至少能被其中三个整除的定义

c++

2个回答

 int nArr[5] = {1,2,3,4,5};

 if (nArr[0] % nArr[1] == 0) //整除判断,即可判断公倍数问题。。
 {
  //
 }

这个有简单的方法,也有复杂的方法,关键是看你对效率是否有要求。
简单的方法是:遍历,依次累加的笨方法,伪代码如下:

 #include <iostream>

using namespace std;

int main(void)
{
    unsigned int a,b,c,d,e;
    unsigned int i = 1;
    unsigned int count = 0;

    cin >> a;
    cin >> b;
    cin >> c;
    cin >> d;
    cin >> e;

    while (i)
    {
        if(i%a == 0) count++;
        if(i%b == 0) count++;
        if(i%c == 0) count++;
        if(i%d == 0) count++;
        if(i%e == 0) count++;
        if (count >= 3)
        {
            cout << i << " is zhongbeishu!" << endl;
            break;
        }
        count = 0;
        i++;
    }


    return 0;
}

复杂的方法可以两两求公倍数,得到5个公倍数,然后再递归一次即可。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐