This page looks best with JavaScript enabled

进制均值

 ·  ☕ 1 min read

一个数A,如果按2到A-1进制表达时,各个位数之和的均值是多少? 结果用最简分数表示。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        while(s.hasNextLine()){
            int n = s.nextInt();
            s.nextLine();
            int sum = sum(n);
            int m = n - 2;
            int g = gcd(sum,m);
            sum /= g;
            m /= g;
            System.out.println(sum+"/"+m);
        }
    }
    
	//求从2至n-1进制各个位上数字之和
    private static int sum(int n){
        int sum = 0, h = n;
        for(int i=2;i<n;i++){			
			//求i进制各个位上数字和
            while(h>0){
                sum += h%i;
                h /= i;
            }
            h = n;
        }
        return sum;
    }
    
	//求最大公约数
    private static int gcd(int m,int n){
        while(n!=0){
            int r = m%n;
            m = n;
            n = r;
        }
        return m;
    }
}

Yang
WRITTEN BY
Yang
Developer