下面給出一個(gè)使用C語言實(shí)現(xiàn)求兩個(gè)整數(shù)的最大公約數(shù)的示例代碼:
成都創(chuàng)新互聯(lián)公司專注于江北網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供江北營(yíng)銷型網(wǎng)站建設(shè),江北網(wǎng)站制作、江北網(wǎng)頁設(shè)計(jì)、江北網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造江北網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供江北網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
```c
#include stdio.h
int gcd(int a, int b);
int main() {
int a, b, result;
printf("請(qǐng)輸入兩個(gè)整數(shù):");
scanf("%d %d", a, b);
result = gcd(a, b);
printf("兩個(gè)數(shù)的最大公約數(shù)為:%d", result);
return 0;
}
int gcd(int a, int b) {
if (a % b == 0) {
return b;
}
return gcd(b, a % b);
}
```
在上面的代碼中,我們定義了一個(gè)`gcd`函數(shù)來求兩個(gè)整數(shù)的最大公約數(shù)。`gcd`函數(shù)使用遞歸方式來實(shí)現(xiàn)輾轉(zhuǎn)相除法求最大公約數(shù)。如果a能被b整除,則b就是兩個(gè)整數(shù)的最大公約數(shù)。否則,我們就不斷將b作為a,將a%b作為b,不斷遞歸求解,直到b能夠整除a。
在主函數(shù)中,我們首先使用`scanf`函數(shù)來讀入兩個(gè)整數(shù),然后用`gcd`函數(shù)來求它們的最大公約數(shù),最后輸出結(jié)果。
需要注意的是,上面的代碼中沒有對(duì)輸入的數(shù)據(jù)進(jìn)行異常處理。如果用戶輸入的不是整數(shù)類型,程序可能會(huì)出現(xiàn)錯(cuò)誤。因此,為了保證程序的健壯性,我們還需要添加一些異常處理代碼來防止這種情況發(fā)生。
#include
"stdio.h"
int
main()
{
int
d1,d2,r;
printf("輸入兩個(gè)正整數(shù):");
scanf("%d
%d",d1,d2);
do
{
r=d1%d2;
d1=d2;d2=r;
}while(d2!=0);
printf("最大公約數(shù)是:%d",d1);
}
//遞歸法
#include
"stdio.h"
int
fun(int
d1,int
d2)
{
if(d2!=0)
return
fun(d2,d1%d2);
else
return
d1;
}
int
main()
{
int
d1,d2;
printf("輸入兩個(gè)正整數(shù):");
scanf("%d
%d",d1,d2);
printf("最大公約數(shù)是:%d",fun(d1,d2));
}
#includestdio.h
int gcd(int m, int n);
int lcd(int m, int n);
int main()
{
int a, b;
printf("輸入兩個(gè)正整數(shù):");
scanf("%d%d", a, b);
printf("%d 和 %d 最大公約數(shù)為%d\n", a, b, gcd(a, b));
printf("最小公倍數(shù)為:%d\n", lcd(a, b));
}
int gcd(int m, int n)
{
int t;
if (mn)
{
t = m;
m = n;
n = t;
}
while (n != 0)
{
t = m%n;
m = n;
n = t;
}
return m;
}
int lcd(int m, int n)
{
int t;
t = m*n / gcd(m, n);
return t;
}