一道java习题

这道题的答案网上不多,这种实现方法目前独一无二,若是转载或者复制,

请说明来自 渡客ITer博客http://blog.sina.com.cn/luolongfei120 谢谢

 

题目内容:

 

 

实现代码:

  public class GNBExc {

 
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("输入一件物品的价格(范围在0.10~5.00元: ");
  float n = Float.valueOf(sc.next());
  float left = 0;
  
  //1元
  int oneyuanCount = (int)(n/1);
  left = mysubtract(n,oneyuanCount*1.0f);
  
  //五角
  int wumaoCount = (int)(left/0.5);
  left = mysubtract(left,wumaoCount*0.5f);
  
  //两角
  int liangmaoCount = (int)(left/0.2);
  left = mysubtract(left,liangmaoCount*0.2f);
  
  //一角
  int onemaoCount = (int)(left/0.1);
  left = mysubtract(left,onemaoCount*0.1f);
  
  //五分
  int wufenCount = (int)(left/0.05);
  left = mysubtract(left,wufenCount*0.05f);
  
  //两分
  int liangfenCount = (int)(left/0.02);
  left = mysubtract(left,liangfenCount*0.02f);
  
  //一分
  BigDecimal b = new BigDecimal(Float.toString(left/0.01f));
  int onefenCount=(int)b.floatValue();

  System.out.println("一元数量: "+oneyuanCount);
  System.out.println("五角数量: "+wumaoCount);
  System.out.println("两角数量: "+liangmaoCount);
  System.out.println("一角数量: "+onemaoCount);
  System.out.println("五分数量: "+wufenCount);
  System.out.println("两分数量: "+liangfenCount);
  System.out.println("一分数量: "+onefenCount);

 }
 
 //解决float型数据丢失精度问题
 public static float mysubtract(float f1,float f2){
  BigDecimal b1 = new BigDecimal(Float.toString(f1));
  BigDecimal b2 = new BigDecimal(Float.toString(Float.valueOf(f2)));
  return  b1.subtract(b2).floatValue();//b1-b2
 }
}

 

有什么不明白的,请评论提问或者直接留言!!!!!

题目:**设计一个简单的图书管理系统** 题干:编写一个Java程序,实现一个基本的图书管理功能。包括图书类(Book)和图书馆(Library)两个类。图书类应有书名(title),作者(author),出版年份(publishYear)属性以及获取这些信息的方法。图书馆类则需要存储一组图书,并提供添加(book)、删除(remove)和查找图书(findBook)的功能。 ```java // 图书类(Book) public class Book { private String title; private String author; private int publishYear; public Book(String title, String author, int publishYear) { this.title = title; this.author = author; this.publishYear = publishYear; } // 获取书籍信息的方法 public String getTitle() { return title; } public String getAuthor() { return author; } public int getPublishYear() { return publishYear; } @Override public String toString() { return "Title: " + title + ", Author: " + author + ", Publish Year: " + publishYear; } } // 图书馆类(Library) import java.util.ArrayList; import java.util.List; public class Library { private List<Book> books; public Library() { books = new ArrayList<>(); } // 添加图书 public void addBook(Book book) { books.add(book); } // 删除图书 public boolean removeBook(Book book) { return books.remove(book); } // 查找图书 public Book findBook(String title) { for (Book book : books) { if (book.getTitle().equals(title)) { return book; } } return null; } // 示例用例 public static void main(String[] args) { Library library = new Library(); Book book1 = new Book("Java核心技术", "张三", 2015); library.addBook(book1); System.out.println(library.findBook("Java核心技术")); // 输出:Title: Java核心技术, Author: 张三, Publish Year: 2015 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值