计算钱币(编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。)

法1(自己的笨方法,顺着往下想即可)


import java.util.*;
public class Main{
     public static void main(){
     Scanner reader = new Scanner(System.in);
     float x = reader.nextFloat();
       int a = (int)x/10;             //十元纸
       int b = ((int)x%10)/5;         //五元纸
       int c= ((int)x%10)-5;          //一元纸币
     
       float d= x%1*100;              //小数部分乘100, 便于计算
       int e = (int)d/50;             //五角硬币数量
       int f = ((int)d%50)/10;        //一角硬币数量
       int g = ((int)d%50)%10/2;      //贰分硬币数量
       int h= 2*g%2;                  //壹分硬币数量       
       
       System.out.println(a+ "张十元");
       System.out.println(b+ "张五元");
       System.out.println(c+ "张一元");
       System.out.println(e+"个五角");
       System.out.println(f+"个一角"); 
       System.out.println(g+"个贰分");
       System.out.println(h+"个壹分"); 
       }
}

法2 哑铃的方法
用了数组,很聪明的做法

import java.util.Scanner;
public class Main{
public static void main(String arg[]){
Scanner reader =new Scanner(System.in);
double x=reader.nextDouble();
double []y=new double [10];
System.out.println((int)(x/10)+" 张十元");
y[0]=x%10;
System.out.println((int)y[0]/5+" 张五元");
y[1]=y[0]%5;
System.out.println((int)(y[1]/1)+" 张一元");
y[2]=y[1]%1;
System.out.println((int)(y[2]/0.5)+" 张五角");
y[3]=y[2]%0.5;
System.out.println((int)(y[3]/0.1)+" 张一角");
y[4]=y[3]%0.1;
System.out.println((int)(y[4]/0.02)+" 张贰分");
y[5]=y[4]%0.02;
System.out.println((int)(y[5]/0.01)+" 张壹分");
}
}
发布了32 篇原创文章 · 获赞 6 · 访问量 1564

猜你喜欢

转载自blog.csdn.net/Pan_ZC/article/details/104583734