C语言----求两个数的最大公约数-创新互联
求两个数的大公约数
1.题目:
网站栏目:C语言----求两个数的最大公约数-创新互联
浏览路径:http://myzitong.com/article/ddgcpe.html
2.思路:输入两个数a,b,求两个数的大公约数。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网站空间、营销软件、网站建设、古冶网站维护、网站推广。
思路一
以a进行减1,再对a和b分别对a-1求余。如果求余结果都为0,则是大公约数。如果求余结果都不为0,则继续a-1再减1。不断循环,直到结果求余都为0,则这个数就是两个数的大公约数。a一定是两个数大的数。
思路二
3.解题代码辗转相除法,一种数学解法,顾名思义,反复的除,最终得到两数的大公约数。 首先我们来分析下定理: 定理: 两个整数 的 大公约数 等于其中 较小 的那个数 和 两数 相除余数 的 大公约数 。辗转相除法也可求最小公倍数。以a和b都是可以的,无顺序关系。
思路一
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int min = a >b ? b : a;
while (1)
{if (a % min == 0 && b % min == 0)
{ printf("大公约数是: %d", min);
break;
}
min--;
}
return 0;
}
思路二
#define _CRT_SECURE_NO_WARNINGS
#includeint main()
{int a = 0;
int b = 0;
int x = 0;
scanf("%d%d", &a, &b);
while (x=a%b)
{a = b;
b = x;
}
printf("大公约数是: %d", x);
return 0;
}
4.提示第一点
int min = a >b ? b : a;
int min=0;
if (a >b)
min = b;
else
min = a;
这两种都是求两个数大的数。
第二点
方案二中,以a和b都是可以的,无顺序关系。
试求两个数的最小公倍数,辗转相除法也可求最小公倍数,比较方便。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:C语言----求两个数的最大公约数-创新互联
浏览路径:http://myzitong.com/article/ddgcpe.html