可怜的蒟蒻(找规律+欧几里得)

 File:Amorphophallus konjac1.jpg

蒟蒻(拼音jǔ ruò, 学名: Amorphophalms Konjac ),日本又称菎蒻,天南星科魔芋属,多年生宿根性块茎草本植物。原产印度、锡兰、马来半岛,中国西南地区栽种已有多年历史,自古便是中国古书中的药草之一。分布于越南、喜马拉雅山地至泰国以及中国大陆的甘肃、宁夏至江南各省、陕西等地,生长于海拔 310 米至 2,200 米的地区,多生长于林缘、疏林下以及溪谷两旁湿润地。蒟蒻常被制作成为果冻类的食品,最普遍是以荔枝作调味的荔枝蒟蒻。
 
 
        有一大片矩形的蒟蒻地,分成了 M*N 块大小相同的矩形蒟蒻田,如图
 
 
       一大 牛在最左上角,现在他要去最右下角。大牛它可什么都不会管,他会选择一条最短的直线路径(就是图中的红色线段),虽然有蒟蒻会被它无情地踩掉。
 
       可怜的蒟蒻, T . T
 
现在请你计算一下有多少块蒟蒻田会被大牛踩掉。如果大牛经过了某块蒟蒻田的内部某点,那么这块蒟蒻田就视为被大牛踩掉了(例如M=2,N=2时候就只有2块田被大牛踩掉)。

Input

输入文件有多行,每行对应一组测试数据,包含有两个整数,依次是MN1<=M,N<=1,000,000,000

输入以 EOF 结束。

Output

 对应于输入的每一组数据,用单独的一行输出其中被大牛踩掉的蒟蒻田块数。

Sample Input

6 7

Sample Output

12

解题思路:


代码如下:C/C++代码

#include<stdio.h>
//gcd函数:欧几里得算法求最大公约数
long int gcd(long int a,long int b)
{
    if(b==0) return a;
    return gcd(b,a%b);
}
int main()
{
    long int c,m,n,k,sum;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        if(m>n)
        {
            c=m;m=n;n=c;
        }
        c=gcd(n,m);//求m,n的最大公约数
        printf("%ld\n",m+n-c);
    }
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值