hdu1722 - cake
2015-05-31 10:25
162 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722
默认蛋糕为圆形,一刀为圆的半径。便巧妙的将蛋糕分块转化为切的刀数。例:分为两块,切两个半径;三块三个半径。
首先将蛋糕 均切 p次,再将其 均切 q次,然后将两者切的轨迹尽可能多的重合,便得出切的最少的次数,即最少分块。
那么,怎么求 尽可能多的重合的刀数呢?没错,这便是 最大公约数。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int q, p;
while (cin >> p >> q)
{
int a = p, b = q,c=a%b;
while(c != 0)
{
a = b;
b = c;
c = a%b;
}
cout << p + q - b<<endl;
}
return 0;
}
默认蛋糕为圆形,一刀为圆的半径。便巧妙的将蛋糕分块转化为切的刀数。例:分为两块,切两个半径;三块三个半径。
首先将蛋糕 均切 p次,再将其 均切 q次,然后将两者切的轨迹尽可能多的重合,便得出切的最少的次数,即最少分块。
那么,怎么求 尽可能多的重合的刀数呢?没错,这便是 最大公约数。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int q, p;
while (cin >> p >> q)
{
int a = p, b = q,c=a%b;
while(c != 0)
{
a = b;
b = c;
c = a%b;
}
cout << p + q - b<<endl;
}
return 0;
}
相关文章推荐
- Thinkphp 3.0 得取最后的Sql 语句操作
- html5.js
- leetcode Maximum Depth of Binary Tree
- WIFI模块ESP8266使用总结和示例
- Android客户端请求服务器端的详细解释(附源代码)
- 你没有变强,是因为你一直很舒服
- 跟我学Java反射——二步曲
- sql学习笔记(16)----------mysql存储过程详解
- Windows使用技巧
- 环信im集成
- 最后一次升级我的超级战舰ThinkPad T430
- Centos6.5安装JDK8+tomcat8.0.22+oracle-11g
- 安装VMware tools工具 建立共享目录
- 华为2014机试样题2:求最大递增数
- c# sql省市联动
- 测试计划
- 【Android】线程及异步操作
- JAVA中的容器
- Android中的ListView使用案例(SimpleAdapter实现)
- CSDN博客主页面设置