2017年9月5日 星期二

11005 - Cheapest Base

  1. import java.util.*;  
  2. class main{  
  3. public static void main(String[] args){  
  4. Scanner sc = new Scanner(System.in);  
  5. int size = sc.nextInt();  
  6. for(int y=0;y<size;y++){  
  7. if(y!=0)System.out.println();  
  8. System.out.println("Case "+(y+1)+":");  
  9. int[] charMoney = new int[36];//36組 0~9 a~z   
  10. for(int i=0;i<36;i++) charMoney[i]=sc.nextInt();  
  11. int count = sc.nextInt();  
  12. for(int i=0;i<count;i++){// Input  
  13.  int num = sc.nextInt();  
  14.  int[] base = new int[37]; int min = 99999;  
  15.   for(int j=2;j<37;j++){ //2~36 進制 
  16.   int N = num;  
  17.     while(N>0){  
  18.      int tmp =N%j;  
  19.      N/=j;  
  20.      base[j]+=charMoney[tmp];  //從0~9 a~z 找價錢
  21.     }    
  22.     if(base[j]<min) min=base[j];  
  23.   }  
  24.   System.out.print("Cheapest base(s) for number "+num+":");  
  25.   for(int j=2;j<37;j++) if(min==base[j]) System.out.print(" "+j);  
  26.   System.out.println();   
  27.    
  28.    
  29.    
  30. }  
  31.   
  32.   
  33. }  
  34. }  
  35. }  

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。