C語言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式
C語言實(shí)現(xiàn)輾轉(zhuǎn)相除法
輾轉(zhuǎn)相除法
又名“歐幾里德算法”

圖片來自搜狗搜索。
第一種方式
根據(jù)定義就可以寫出一種比較簡(jiǎn)單的實(shí)現(xiàn)方法:、
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a,b,c;
scanf("%d %d",&a,&b);
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("%d",b);//將除數(shù)輸出
return 0;
}第二種方式
熟練掌握輾轉(zhuǎn)相除法之后,可以用遞歸的形式來實(shí)現(xiàn):
#include <stdio.h>
#include <stdlib.h>
//遞歸函數(shù)
int gcd(int a,int b){
if(b==0) return a;//返回a,即返回上一步的b
return gcd(b,a%b);
}
int main(int argc, char *argv[]) {
int a,b;
scanf("%d %d",&a,&b);
printf("%d",gcd(a,b));
return 0;
}C語言求最大公約數(shù)(輾轉(zhuǎn)相除法)
歐幾里得算法又稱輾轉(zhuǎn)相除法,是指用于計(jì)算兩個(gè)非負(fù)整數(shù)a,b的最大公約數(shù)。
計(jì)算公式為gcd(a,b) = gcd(b,a mod b)= gcd(a mod b,b mod (a mod b))→直到gcd(m,0)。
b處的值放入a,b處的值變?yōu)樵璦的值對(duì)原b的值
比如:a=12,b=8,gcd(12,8)=gcd(8,4)=gcd(4,0),所以m=4,即最大公約數(shù)為4。
#include<stdio.h>
int main()
{
int a=0,b=0;//求a,b的最大公約數(shù)
scanf("%d %d",&a,&b);
int m=0;//用于存放最大公約數(shù)
int t=0;//設(shè)置一個(gè)存放器,用于存放a值
while(b!=0)//直到b變量為0,a變量就是所求的最大公約數(shù)
{
t=b;
b=a%b;//b為a對(duì)b取余數(shù)
a=t;//把原來b的值放入a變量中
}
printf("%d",a);
return 0;
} 總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Qt使用QListWidget實(shí)現(xiàn)自定義Item
這篇文章主要為大家詳細(xì)介紹了Qt如何使用QListWidget實(shí)現(xiàn)自定義Item的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
用C/C++實(shí)現(xiàn)linux下檢測(cè)網(wǎng)絡(luò)接口狀態(tài)
這篇文章主要為大家詳細(xì)介紹了用c/c++實(shí)現(xiàn)linux下檢測(cè)網(wǎng)絡(luò)接口狀態(tài),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
C語言統(tǒng)計(jì)一篇英文短文中單詞的個(gè)數(shù)實(shí)例代碼
本文通過實(shí)例代碼給大家介紹的C語言統(tǒng)計(jì)一篇英文短文中單詞的個(gè)數(shù),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-03-03
如何通過函數(shù)指針調(diào)用函數(shù)(實(shí)現(xiàn)代碼)
指針可以不但可以指向一個(gè)整形,浮點(diǎn)型,字符型,字符串型的變量,也可以指向相應(yīng)的數(shù)組,而且還可以指向一個(gè)函數(shù)2013-09-09
QT+ffmpeg實(shí)現(xiàn)視頻解析的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用QT+ffmpeg實(shí)現(xiàn)視頻解析功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定幫助,需要的可以參考一下2022-09-09
C++詳解如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)組
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06

