在霍格沃茨找零钱(20)
【思路】统一换算为单位K,1G= 17*20K, 1S = 29K ,1K=1K,求应付和实付的差,再换算回本单位
import java.util.*;
public class Main{
public static final int[] W = {17*29, 29, 1};//统一换算为单位K
//1G= 17*20K, 1S = 29K ,1K=1K
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] p = sc.next().split("\\.");//应付的价钱
String[] a = sc.next().split("\\.");//实付的价钱
//P给付
int[] P = {Integer.parseInt(p[0]) ,Integer.parseInt(p[1]), Integer.parseInt(p[2])};
//A实付
int[] A = {Integer.parseInt(a[0]) ,Integer.parseInt(a[1]), Integer.parseInt(a[2])};
int ta = A[0]*W[0] + A[1]*W[1] + A[2]*W[2];
int tp = P[0]*W[0] + P[1]*W[1] + P[2]*W[2];
int t = ta-tp;//差
if(ta<tp){//实付<应付
System.out.print("-");
t = -t;
}
System.out.println(t/W[0]+"."+t%W[0]/W[1]+"."+t%W[0]%W[1]/W[2]);
}
}


巨人网络公司福利 91人发布
查看8道真题和解析