• 最大公因数


    最大公因数
    在数学中,辗转相除法,又称欧几里得算法,是求最大公因数的算法。
    两个整数的最大公因数是能够同时整除它们的最大的正整数。辗转相除法基於如下原理:
    两个整数的最大公因数等於其中较小的数和两数的差的最大公因数。例如,252和105的最大公因数是21(252 = 21 × 12;105 = 21 × 5);因为252 ? 105 = 21 × (12 ? 5) = 147,所以147和105的最大公因数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公因数。
    请以C/C++/JAVA实作最大公因数演算法
    Input
    [第一行为测资的笔数,例如3则代表接下来有3笔测资]
    [第二行开始为测资,一笔一行,会有两个数,必须求出其最大公因数]
    [以此类推…]
    Output
    [从第一笔测资开始,一笔一行的印出每笔测资的最大公因数,如第一笔测资25与15的最大公因数为5,则output中第一行印出5]
    Example Input
    3
    25 15
    63 81
    48 1024
    Example output
    5
    9
    16


    答案:

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class gongyingshu {
    
        public static void main(String[] args) {
            List<Integer> results = new ArrayList<Integer>();
        
            Scanner scan = new Scanner(System.in);
            int j =scan.nextInt();
            int a,b;
            
            
            for(int i=0;i<j;i++){
            
                a =scan.nextInt();
                b =scan.nextInt();
                
                results.add(gcd(a,b));
            }
            
            for(int result :results){
                System.out.println(result);
            }
            
        }
        public static int gcd(int a, int b)  
        {  
            int r;  
            while(b != 0)  
            {  
                r = a%b;  
                a = b;  
                b = r;  
            }  
            return a;  
        }  
    }
  • 相关阅读:
    删除排序链表中的重复元素
    爬楼梯
    Sqrt(x)
    Add Binary
    fremarker导出word list
    url中文参数乱码问题
    取值范围
    动态添加echarts
    格式化数据保留两位小数,输入格式为 :xxx,xx,,,,x,,(x为浮点数)
    使用poi读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/bmbi/p/5281610.html
Copyright © 2020-2023  润新知