在霍格沃茨找零钱(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]); } }