栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

PAT 1037

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PAT 1037

1037 在霍格沃茨找零钱
原本看着通过率挺高的,就想赶快做完,没想到卡住挺长时间

在此次做题过程中,遇到的问题有:
1、用进制的方式直接减,A-B与B-A的结果不一样,必须将A、B调换,最后在结果前加上符号,才可得出正确结果。
2、发现了一个自己不太注意的地方,就是“相等”的时候,常常忽略,导致自己也找不到代码的问题。
3、这个代码是赶出来的,不太精干

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {   	
    	Scanner sc = new Scanner(System.in);
    	//进制问题  	
    	    	String str=sc.nextLine();
    	    	//拿空格区分,拿点区分
    	    	String[] st=str.split(" ");
    	    	String[] s1=st[0].split("[.]");  //应付
    	    	String[] s2=st[1].split("[.]");  //实付
    	    	String s=""; 
    	    	int[] arr=new int[3];
    	    	if(Integer.parseInt(s1[0])>Integer.parseInt(s2[0]))
    	    	{
    	    		for(int i=0;i<3;i++)
        	    	{
        	    		arr[i]=Integer.parseInt(s1[i]);
        	    	}
    	    	}
    	    	else {
    	    		for(int i=0;i<3;i++)
        	    	{
        	    		arr[i]=Integer.parseInt(s2[i]);
        	    	}
    	    	}
    	    	
    	    	for(int i=2;i>=0;i--)
    	    	{
    	    		int a=arr[i];
    	    		int b=0;
    	    		if(Integer.parseInt(s1[0])>Integer.parseInt(s2[0]))
    	    		{
    	    			 b=Integer.parseInt(s2[i]);
    	    		}
    	    		else {
    	    			 b=Integer.parseInt(s1[i]);
    	    		}   	    		
    	    		//从后往前减
    	    		if(a>=b)
    	    		{
    	    			arr[i]=a-b;
    	    		}
    	    		else if(i==2){
    	    			arr[i]=a+29-b;
    	    			arr[i-1]=arr[i-1]-1;
    	    		}
    	    		else if(i==1)
    	    		{
    	    			arr[i]=a+17-b;
    	    			arr[i-1]=arr[i-1]-1;
    	    		}
    	    	}
    	    	if(Integer.parseInt(s1[0])>Integer.parseInt(s2[0]))
    	    	{
    	    		for(int i=0;i<3;i++)
        	    	{
        	    		if(i==0)
        	    			System.out.print("-"+arr[i]+".");
        	    		else if(i==2)
        	    			System.out.println(arr[i]);
        	    		else if(i==1)
        	    			System.out.print(arr[i]+".");
        	    	}
    	    	}
    	    	else {
    	    		for(int i=0;i<3;i++)
        	    	{
        	    		if(i!=2)
        	    			System.out.print(arr[i]+".");
        	    		else if(i==2)
        	    			System.out.println(arr[i]);
        	    		
        	    	}
    	    	}
    	    }        
}    

等自己有空的时候,再精炼

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/288296.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号