hdu acmsteps 2.1.3 cake


举个例子:4 6,用一个矩形来切割,如下图





蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下

10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的GCD,所以就~~~~~



看完题  一点思路都没有  看了这个基本明白了。。解释的很巧妙。。所以先转载过来,公式是p+q-gcd(p,q)

源地址:http://hi.baidu.com/yzy%D1%EE%D7%D3%D1%DC/blog/item/d1ee96be84e1f20018d81f46.html/cmtid/d63e8e3e91fdcecd7c1e714b

代码很简单:

#include <iostream>
#include <stdio.h>
using namespace std;
int gcd(int a,int b)
{
	if(b==0)return a;
	else return gcd(b,a%b);
}
int main()
{
	int p,q;
	while(cin>>p>>q)
	{
		cout<<p+q-gcd(p,q)<<endl;
	}
	return 0;
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值