杭电acm 1108题
这是一道求两个整数最大公倍数的问题,题目比较简单....
直接使用穷举法计算,数据不是很大....
#include "iostream" using namespace std; int main(void) { int a1,a2; int i; while(cin>>a1>>a2) { if(a1>a2) i=a1; else i=a2; for(;;i++) { if((i%a1==0)&&(i%a2==0)) {cout<<i<<endl;break;} } } return 0; }
下面一种使用的是一种技巧来计算的....
#include <iostream> using namespace std; int lcm(int a,int b); //最小公倍数:lease common multiple //Precondition:a,b为两个正整数,且不为0 //Postcondtion:返回a,b的最小公倍数 int main() { int a,b; while(1) { cout << "请输入两个正整数:"; cin >> a >> b; cout << a << "与" << b << "的最小公倍数为" << lcm(a,b) << endl; } return 0; } int lcm(int a,int b) { int max = (a >= b?a:b),min = (a < b?a:b),i; for(i = 1;;i++) { if((max * i) % min == 0) { return (max * i); } } }