亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式

 更新時(shí)間:2023年08月10日 09:45:03   作者:你的代碼沒(méi)bug  
這篇文章主要介紹了C語(yǔ)言之實(shí)現(xiàn)輾轉(zhuǎn)相除法的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C語(yǔ)言實(shí)現(xiàn)輾轉(zhuǎn)相除法

輾轉(zhuǎn)相除法

又名“歐幾里德算法”

圖片來(lái)自搜狗搜索。

第一種方式

根據(jù)定義就可以寫(xiě)出一種比較簡(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)相除法之后,可以用遞歸的形式來(lái)實(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語(yǔ)言求最大公約數(shù)(輾轉(zhuǎn)相除法)

歐幾里得算法又稱(chēng)輾轉(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;//把原來(lái)b的值放入a變量中 
	}
	printf("%d",a); 
	return 0;
} 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論