进制均值(京东2017秋招真题)——注意求取公约数得方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/m1f2c3/article/details/100030589

在这里插入图片描述

import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int A = sc.nextInt();
            int sum = 0;
            int num = A - 2;
            for(int i = 2; i <= A - 1; ++i){
                int temp = A;
                do{
                    sum += temp % i;
                    temp = temp / i;
                }while(temp != 0);
            }
            int yue = getGongYue(sum, num);
            System.out.printf("%d/%d\r\n", sum / yue, num / yue);
        }

    }

    public static int getGongYue(int n, int m){//注意这里公约数的求取方法
        if(n > m){
            m += n;
            n = m - n;
            m = m - n;
        }
        if(m % n == 0)return n;
        else return getGongYue((m - n), n);
    }
}

猜你喜欢

转载自blog.csdn.net/m1f2c3/article/details/100030589