[Day17]Love Calculator

上一篇介绍了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!,继续加油!


<<:  Day02: Hello TypeScript! 环境安装起来 + 牛刀小试~

>>:  【Day 17】jQuery事件中的Mouse Events 鼠标事件

CSS display:Grid

grid-template-areas 使用 grid-template-areas 定义每个区块,...

Ruby 学习笔记簿:Metaprogramming Workshop - Before Action

实作前准备 需要先了解以下主题: Method Wrappers: Around Aliases M...

Day28 laravel todolist 建立使用者群组 下篇

Day28 laravel todolist 建立使用者群组 下篇 在上篇文章中,我们讲到如何邀请其...

Day27 firbase hosting

firebase hosting 是 firebase 所推出一种快速,安全和可靠的方式来托管应用程...

第六章 之五

OK,说好本章结要来说一下页面,那就说一下页面能干嘛,首先要提到的是有页面功能又有文章功能,同时都可...