上一篇介紹了Basically Speaking,這題有用到比較常見的寫法,Integer.parseInt跟Integer.toString,這兩個一個是可以讓其他進未轉成十進位,一個是讓十進位轉成你需要的進位,當然這兩個語法不止這個用法,但上一題只需要這兩個用法就夠了。
今天講解的題目是Love Calculator
先附上程式碼:
import java.util.;
import static java.lang.System.;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
double a=CC(sc.nextLine().toLowerCase());
double b=CC(sc.nextLine().toLowerCase());
if(Math.max(a,b)!=0)System.out.printf("%.2f %%",(Math.min(a,b)/Math.max(a,b))*100);
else System.out.print("-1.#J %");
System.out.println("");
}
}
public static double CC(String st){
double val=0;
for(int i =0;i<st.length();i++){
if(st.charAt(i)>=97 && st.charAt(i)<=122) val=val+st.charAt(i)-96;
}
while((int)val>=10){
val=(int)val/10+(int)val%10;
}
return val;
}
};
題目要求計算兩個字串的百分比,所以也是不能用INT來設定數字,另外可以利用ASCII CODE轉成數字,例如a=1、b=2……,可以使用. charAt(i)-96讓a=1,以此類推,因為特殊字元不用計算,所以判斷範圍在97~122之間,這樣特殊自原就不會計算了,因為要計算到個位數,所以建議寫個副程式,因為會不只用到一次,這樣會比較方便,最後在算出百分比就可以了,大的數字放在分母,這樣就不會超過100%了,可以利用Math.min(,)、Math.max(,)找出來,這也是內建的語法之一。
今天的講解就到這裡。
明天也是新的題目,會介紹Tell me the frequencies!,繼續加油!