hdu1722(gcd)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722

 

题意:要使一块蛋糕既能均分给a个人,又能均分给b个人,问至少需要分成几块(不需要每块都一样大小);

 

思路:假设先将蛋糕切c=gcd(a,b)块,那么再将每块分成a/c块可以可以得到a块蛋糕,再将蛋糕合起来,然后分成b块,这次分的过程中会有c块蛋糕是之前切好的,也就是总共要分成a+b-gcd(a, b)块;

 

代码:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <math.h>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 int main(void){
 8     int a, b;
 9     while(scanf("%d%d", &a, &b)!=EOF){
10         int ans = a + b - __gcd(a, b);
11         printf("%d\n", ans);
12     }
13     return 0;
14 }

 

posted @ 2016-11-15 16:17  geloutingyu  阅读(296)  评论(0编辑  收藏  举报