andy6804tw
10/8/2016 - 6:19 AM

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=32660 這題我的作法是從尾巴讀取是否有遇到數字若有把數字存起來反之加上位移數(ps.數字也可能2位數) 這題還要考慮字母溢位 所以必須 if(tot

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=32660

這題我的作法是從尾巴讀取是否有遇到數字若有把數字存起來反之加上位移數(ps.數字也可能2位數) 這題還要考慮字母溢位 所以必須 if(tot > 'Z'){ tot=tot % 'Z' + 'A' -1 ; } 因為是從最後開始讀取所以先append進字串,最後再reverse出來

範例測資 input 1 A B C 13 D E 2 X Y Z 20 output NOPFGRST

import java.util.*;  
  
public class Main {  
  
    public static void main(String[] args) {  
        Scanner scn = new Scanner(System.in);  
        int n=Integer.parseInt(scn.nextLine());
        while(n--!=0){
        	String s[]=scn.nextLine().toUpperCase().split(" ");
        	StringBuilder str=new StringBuilder("");
        	int num=0;
        	for(int i=s.length-1;i>=0;i--){
        		char c=s[i].toCharArray()[0];
        		if((c-'0')<=9)
        			num=Integer.parseInt(s[i]);
        		else{
        			char tot=(char)(c+num);
        			if(tot>'Z')
        				tot=(char)(tot%'Z'+'A'-1);
        				str.append(tot);
        		}
        	}
        	System.out.println(str.reverse());
        }
    }
    /*題目:ITSA49次月賽 Problem4. 跳舞的小人
    作者:1010
    時間:西元 2016 年 10 月 */
}