導航:首頁 > 編程語言 > java輾轉相除

java輾轉相除

發布時間:2022-07-02 01:50:13

❶ 用java寫輾轉相除法 例如題目是2 3 跟18 24 求程式碼

publicclassmath{
publicstaticvoidmain(Stringargs[]){

System.out.println(math.gcd(2,3));

System.out.println(math.gcd(8,42));
}
staticintgcd(inta,intb){
if((b%a)!=0){
returngcd((b%a),a);
}else{
returna;
}
}

}

main要小些,邏輯也有點問題。。上面這樣改就可以得到最大公約數了

❷ 輾轉相除法求最大公約數java

輾轉相除法,是求兩個正整數之最大公因子的演算法
輾轉相除法的演算法過程如下:設兩數為a、b(a>b),求a和b最大公約數(a,b)的步驟如下:用a除以b,得
a÷b=q,余數r1(0≤r1)。若r1=0,則(a,b)=b;若r1不等於0,則再用b除以r1,得b÷r1=q,余數r2
(0≤r2).若r2=0,則(a,b)=r1,若r2不等於0,則繼續用r1除以r2,如此下去,直到能整除為止,其最後一個為被除數的余數的除數即為
(a, b)。
具體事例代碼如下:

public class Demo2 {
public static void main(String[] args) {
int a = 49,b = 91;
while(b != 0) {
int yushu = a % b; //記錄余數
a = b; //將b值賦給a值
b = yushu; //將余數賦給b值
}
System.out.println(a);
}
}
輾轉相除法基於如下原理:兩個整數的最大公約數等於其中較小的數和兩數的相除余數的最大公約數。

❸ 用java編寫程序,輸入兩個正整數,利用輾轉相除法求兩個整數的最大公約數和最小公倍數

自然語言描述

計算兩個非負整數p 和q 的最大公約數:若

q 是0,則最大公約數為p。否則,將p 除以

q 得到余數r,p 和q 的最大公約數即為q 和

r 的最大公約數。

Java code 求公約數

publicstaticintgcd(intp,intq)
{
if(q==0)returnp;
intr=p%q;
returngcd(q,r);
}


公倍數就是兩個數的積除以最大公約數。

publicstaticintg(intp,intq)
{
returnp*q/gcd(q,r);
}

❹ java:輸入兩個正整數m和n,求其最大公約數和最小公倍數。 程序分析:利用輾除法。

程序運行截圖:

publicclassTest{

publicstaticfinalvoidmain(String[]args){
System.out.println("請輸入兩個正整數");
System.out.print("第一個正整數:");
Scannerscanner=newScanner(System.in);
Stringone=scanner.nextLine();
inta=Integer.valueOf(one);
System.out.print("第二個正整數:");
Stringtwo=scanner.nextLine();
intb=Integer.valueOf(two);
System.out.println("a="+a+",b="+b);
//求最大公約數
//1.a÷b,令temp為所得余數(0≤r<b)
//若temp=0,演算法結束;b即為答案。
//2.互換:置a←b,b←temp,並返回第一步。
inttemp,num1=a,num2=b;
if(a<b){
//互換位置
temp=b;
b=a;
a=temp;
}
System.out.println("a="+a+",b="+b);
while(b!=0){/*利用輾除法,直到b為0為止*/
temp=a%b;
a=b;
b=temp;
}
System.out.println("最大公約數:"+a);
//求最小公倍數
System.out.println("最小公倍數:"+num1*num2/a);
}
}

❺ java大數除法用到了輾轉相除法了么

你好,不需要用到,可以直接利用Java集成的大數類BigDecimal類實現。函數代碼如下:

import java.math.BigDecimal;
public static double div(double v1,double v2,int scale){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}

❻ 用Java 求兩個數的最小公倍數

//求最大公約數

publicstaticintcommonDivisor(intn,intm){

//輾轉相除是用大的除以小的。如果nwhile(n%m!=0){

inttemp=n%m;

n=m;

m=temp;

}

returnm;

}

//求最小公倍數

publicstaticintcommonMultiple(intn,intm){

returnn*m/commonDivisor(n,m);//兩數相乘除以最大公約數

}

❼ 輾轉相除的循環體,java編程代碼。求解釋

方法的名字翻譯成漢語是:歐幾里德演算法

歐幾里德演算法又稱輾轉相除法,是指用於計算兩個正整數a,b的最大公約數。

(intm,intn){
while(true){
if((m=m%n)==0){//(m=m%n)括弧表達式返回的值是m%n的值
//也就是(m=m%n)==0相當於m%n==0這個條件判斷,意思是判斷m能否被n整除
returnn;//如果m能被n整除,就返回n。n就是m和n的公約數
//returnn;執行之後,直接退出了這個方法,不會再while也不會執行下面的if
}//如果前面的if判斷為false就不會執行returnn;則繼續執行下面的if
if((n=n%m)==0){//這是反過來判斷n是不是能被m整除,如果能,m就是公約數
returnm;//返回公約數m
}
}
}

❽ java 輾轉相除法求最大公約數

比較好用的是輾轉相除法。
比如:49和91
a b temp
49 % 91 = 49
91 % 49 = 42
49 % 42 = 7
42 % 7 = 0
所以最大公約數就是7.

public class T {
public static void main(String[] args) {
int gcd = gcd(91, 49);
System.out.println(gcd);
}

/**
* greatest commond divisor
* @param a
* @param b
* @return
*/
public static int gcd(int a, int b) {
while(b != 0) {
int temp = a%b;
a = b;
b = temp;
}
return a;
}

}

❾ java編程:用歐幾里德輾轉相除法求兩個正整數的最大公約數

publicclasstest{

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intres=gcd(8,6);
System.out.println(res);
}

privatestaticintgcd(inti,intj){
intm,n,r;
//使m>n
if(i>j){
m=i;
n=j;
}else{
m=j;
n=i;
}
//通過輾轉除來求的最大公約數
r=m%n;
while(r!=0){
m=n;
n=r;
r=m%n;
}
//返回最大公約數
returnn;

}

}

閱讀全文

與java輾轉相除相關的資料

熱點內容
注冊伺服器地址指什麼 瀏覽:431
文本命令行 瀏覽:95
撲克牌睡眠解壓 瀏覽:190
rc4演算法流程圖 瀏覽:157
胡蘿卜解壓方法 瀏覽:35
掃描pdf格式軟體 瀏覽:876
程序員在銀行開賬戶 瀏覽:516
android資料庫下載 瀏覽:749
中午伺服器崩潰怎麼辦 瀏覽:425
產品經理和程序員待遇 瀏覽:442
解憂程序員免費閱讀 瀏覽:109
錄像免壓縮 瀏覽:508
總結所學過的簡便演算法 瀏覽:362
南昌哪些地方需要程序員 瀏覽:761
三台伺服器配置IP地址 瀏覽:175
如何用命令方塊連續對話 瀏覽:280
win7linux共享文件夾 瀏覽:304
命令符打開本地服務 瀏覽:601
android應用程序源碼 瀏覽:705
安卓開發工程師簡歷怎麼寫 瀏覽:63