Code[VS] 1212 最大公约数
来源:互联网 发布:淘宝做单一个月挣多少 编辑:程序博客网 时间:2024/05/17 23:52
难度:*
输入:
只有一行,为a,b (-maxlongint-1<=a,b<=maxlongint)
输出:
只有一行,为a,b的最大公约数
板块:数学——数论
数据结构:——算法:欧几里德算法
分析:
最大公约数的模板题,下面用三种方式实现
代码:
1、递归实现:
#include <cstdio>
#include <cstdlib>
int a,b;
int gcd(int i,int j)
{
return j?gcd(j,i%j):i;
}
int main(void)
{
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
2、非递归实现
#include <cstdio>
#include <cstdlib>
int a,b;
int gcd(int i,int j)
{
int r;
while (j)
{
r=i%j;
i=j;
j=r;
}
return i;
}
int main(void)
{
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
3、二进制优化算法
#include <cstdio>
#include <cstdlib>
int a,b;
int gcd(int i,int j)
{
if (j==0) return i;
if (!(i&1)&&!(j&1)) return (gcd(i>>1,j>>1))<<1;
if (!(i&1)&&(j&1)) return gcd(i>>1,j);
if ((i&1)&&!(j&1)) return gcd(i,j>>1);
return gcd(j,i%j);
}
int main(void)
{
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
0 0
- Code[VS] 1212 最大公约数
- Code[VS] 1012 最小公倍数与最大公约数
- CODE[VS]1012 最大公约数和最小公倍数问题
- Code Vs-problem-1012 最大公约数和最小公倍数问题
- VS Code
- VS Code
- VS Code
- VS Code
- VS Code
- vs code
- VS Code
- Software architecture vs code
- CODE[VS] 2597 团伙
- CODE[VS] 1201
- CODE[VS] 1202
- CODE[VS] 1203
- CODE[VS] 1206
- CODE[VS] 2235
- hdu 1698
- ASIHTTPRequest 框架的导入
- 部分计算机上视频不能自动刷新的解决方案
- HashTable 使用
- COM创建机制(二)
- Code[VS] 1212 最大公约数
- 快速排序
- poj3268Silver Cow Party最短路问题(dijkstra+邻接矩阵转置)
- android 判断手机是否打开了允许模拟位置选项
- UIButton的UIButtonTypeRoundedRect样式导致按钮图象色彩发生改变
- 【LeetCode】【Python】Binary Tree Inorder Traversal
- 同学聚会之后
- .net mvc 微信开发笔记(一)------申请测试用公共账号
- 详解Struts1中的struts-config.xml配置文件