十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
#includestdio.h
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),五華企業(yè)網(wǎng)站建設(shè),五華品牌網(wǎng)站建設(shè),網(wǎng)站定制,五華網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,五華網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
void swap(int *m,int *n){
int t;
if(m n){
t = n;
n = m;
m = t;
}
}
int f(int m,int n){
if(m%n == 0)return n;
else
return f(n,m%n);
}
int main(){
int p = 0,m = 0,n = 0;
printf("請(qǐng)按照由大到小的順序輸入兩個(gè)整數(shù),用空格隔開(kāi):\n");
scanf("%d%d",m,n);
swap(m,n);
p = f(m,n);
printf("兩個(gè)數(shù)的最大公約數(shù)是:%d\n",p);
return 0;
}
其實(shí)很簡(jiǎn)單 就是利用遞歸
中間存在個(gè)遞歸么 就是當(dāng)?shù)谝粋€(gè)參數(shù)能被第二個(gè)參數(shù)整除 即代碼中的b為零 3目運(yùn)算就把第一個(gè)參數(shù)輸出了 那么第二個(gè)參數(shù)就是最大公約數(shù)了
然后就是如果無(wú)法除盡 第一種情況 a〉b 公約數(shù)肯定是小于b的(小于即a%b模) 然后將(b,a%b)遞歸運(yùn)算,就可以重復(fù)上述過(guò)程獲得最大公約數(shù)
第二種 GCD(a,b)中ab就是將 a和b交換了位置遞歸 因?yàn)閍%b肯定為a 所以就相當(dāng)于 GCD(b,a)
#includestdio.h
int?gcd(int?a,int?b)
{if(a%b==0)return?b;
return?gcd(b,a%b);
}
int?main()
{int?a,b;
scanf("%d%d",a,b);
printf("%d\n",gcd(a,b));??
return?0;
}
#include?stdio.h
int?gcd(int?m,int?n)?{
if(m*n==0)
return?(m==0?n:m);
if(mn)
return?gcd(m%n,n);
else?if(mn)
return?gcd(n%m,m);
}
int?main(void)?{
int?m,n;
printf("請(qǐng)輸入兩個(gè)數(shù):\n");
scanf("%d%d",m,n);
printf("其最大公約數(shù)為:\n");
printf("%d\n",gcd(m,n));
return?0;
}
運(yùn)行結(jié)果