hdu 1722 Cake

来源:互联网 发布:上瘾网络剧新闻发布会 编辑:程序博客网 时间:2024/06/06 03:18

题目大意就是 一个蛋糕至少切成几块(不论大小),可同时分给p个人或q个人。

例如 2,3人的话

切成 1/3 1/3 1/6 1/6 4块即可满足

 

其实可以转换成 一个矩形分同时切成p份或是q份会有多少条线。其中必有gcd(p,q)条线重合。

即公式为 p + q - gcd(p,q);

#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int gcd(int a,int b){    return b==0?a:gcd(b,a%b);}int main(){    int a,b;    while(scanf("%d%d",&a,&b)!=EOF)    {        int t;        if(a>b) t=gcd(a,b);        else t=gcd(b,a);        printf("%d\n",a+b-t);    }    return 0;}