【9404】最大公约数
来源:互联网 发布:java短链接实现 编辑:程序博客网 时间:2024/06/15 05:13
Time Limit: 10 second
Memory Limit: 2 MB
问题描述
用递归方法求两个正整数m和n的最大公约数。(m>0,n>0)
Input
两个数,即m和n的值。
Output
最大公约数
Sample Input
8 6
Sample Output
gcd=2
【题解】
用辗转相除法来做就好
假设k是两个数a,b的最大公约数
a = k*x1 b = k*x2;
k*x1 / k*x2 = x3 + rest
k*(x1) = k*x2*x3 + rest
要使得(k*x2*x3+rest)能被k整除,则 rest也应该能被k整除。
则rest = x4*k;
则可以转换成求b和x4*k的最大公约数。
最后若是余数为0,则说明 k*x2就是最大公约数。
【代码】
#include <cstdio>int m,n;void input_data(){ scanf("%d%d",&m,&n);}int gcd(int a,int b) //用递归的写法来写辗转相除法{ if ( b == 0) return a; else return gcd(b,a % b);}int main(){ input_data(); printf("gcd=%d",gcd(n,m)); return 0;}
1 0
- 【9404】最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- 最大公约数
- simplejson模块介绍
- 偏好存储
- 2016.07.14【初中部 NOIP提高组 】模拟赛C题解
- windows程序设计学习笔记-多文档界面
- Mini Project #7 - Spaceship
- 【9404】最大公约数
- Oracle 行转列 wm_concat函数
- 大数运算c++
- 7.15~7.17GDOI模拟赛总结
- c++之STL string(2)复制,迭代,连接,查找,截短,字符串反转,大小写转换
- [leetcode] 198. House Robber
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- JZOJ.1758 过河
- [暴力] HDU 4473 Exam