进制均值
尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示为三位数1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,。 小B感兴趣的是,一个数A如果按2到A-1进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的计算均基于十进制进行,结果也用十进制表示为不可约简的分数形式。
import java.util.*;
public class Main{
public static void NumberConversion(int n){
int sum0,sum=0,m=n;
//进制转换
for (int i=2;i<n;i++){
sum0=0;
while(n>0){
sum0+=n%i;
n=n/i;
}
n=m;
sum+=sum0;
}
//辗转相除法求最大公约数
int a=sum,b=n-2;
while(a%b>0){
int c=a;
a=b;
b=c%b;
}
System.out.println(sum/b+"/"+(n-2)/b);
}
public static void main(String []args){
Scanner sca=new Scanner(System.in);
while(sca.hasNext()){
NumberConversion(sca.nextInt());
}
}
}