藍橋杯歷屆試題 PREV1 - 核桃的數量

歷屆試題 核桃的數量  

時間限制:1.0s   內存限制:256.0MB

   

問題描述

小張是軟件項目經理,他帶領3個開發組。工期緊,今天都在加班呢。爲鼓舞士氣,小張打算給每個組發一袋核桃(據傳言能補腦)。他的要求是:

1. 各組的核桃數量必須相同

2. 各組內必須能平分核桃(當然是不能打碎的)

3. 儘量提供滿足1,2條件的最小數量(節約鬧革命嘛)

輸入格式

輸入包含三個正整數a, b, c,表示每個組正在加班的人數,用空格分開(a,b,c<30)

輸出格式

輸出一個正整數,表示每袋核桃的數量。

樣例輸入1

2 4 5

樣例輸出1

20

樣例輸入2

3 1 1

樣例輸出2

3

 

思路:實質上是求3個數的最小公倍數,寫出gcd和lcm即可求解。

#include <iostream>
using namespace std;

int gcd(int a, int b)
{	
	#define swap(a,b) {a^=b; b^=a; a^=b;}
	if( a > b ) swap(a, b);
	while( b != 0 ){
		int t = a % b;
		a = b;
		b = t;
	}
	return a;
}

int lcm(int a, int b)
{	
	return a * b / gcd(a,b);
}

int main()
{
	int a, b, c;
	cin >> a >> b >> c;
	
	int t;
	t = lcm(a, b);
	t = lcm(t, c);
	
	cout << t << endl; 			
	
	return 0;	
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章