Java Case Study 3
2021/4/13 12:27:55
本文主要是介绍Java Case Study 3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java Case Study 3
- case 7:猜生日
- 思路
- 代码
- case 8:“读出金额”
- 思路
- 代码
case 7:猜生日
逻辑:通过5次猜测,来猜1~31之间的数
可以通过5位二进制数来进行表示
询问5次即每次询问一位是0还是1
通过列出为1的值并确定是否在其中来判断该位的值
所需知识:
- 二进制
- 输入输出
- 移位
- 字符串拼接
思路
-
准备代表5个集合的5个字符串,这个字符串要在内部换行
每个集合的内容是每一位上为1时的1~31间的数字的集合 -
准备好后开始交互
依次询问是否在此集合中,用户输入0或者1
第一个集合:day += answer * 1
第二个集合:day += answer * (1<<1)
以此类推 -
最终day就是生日所在的号数
代码
import java.util.Scanner; public class Case7 { public static void main(String[] args) { String set1 = "1 3 5 7\n"+ "9 11 13 15\n"+ "17 19 21 23\n"+ "25 27 29 31"; String set2 = "2 3 6 7\n"+ "10 11 14 15\n"+ "18 19 22 23\n"+ "26 27 30 31"; String set3 = "4 5 6 7\n"+ "12 13 14 15\n"+ "20 21 22 23\n"+ "28 29 30 31"; String set4 = "8 9 10 11\n"+ "12 13 14 15\n"+ "24 25 26 27\n"+ "28 29 30 31"; String set5 = "16 17 18 19\n"+ "20 21 22 23\n"+ "24 25 26 27\n"+ "28 29 30 31"; int day = 0; Scanner kb = new Scanner(System.in); System.out.print("你的生日号数在这个集合里面吗?\n"); System.out.print(set1); System.out.print("\n是,请输入1,否则输入0:"); day += kb.nextInt() * 1; System.out.print("你的生日号数在这个集合里面吗?\n"); System.out.print(set2); System.out.print("\n是,请输入1,否则输入0:"); day += kb.nextInt() * (1 << 1); System.out.print("你的生日号数在这个集合里面吗?\n"); System.out.print(set3); System.out.print("\n是,请输入1,否则输入0:"); day += kb.nextInt() * (1 << 2); System.out.print("你的生日号数在这个集合里面吗?\n"); System.out.print(set4); System.out.print("\n是,请输入1,否则输入0:"); day += kb.nextInt() * (1 << 3); System.out.print("你的生日号数在这个集合里面吗?\n"); System.out.print(set5); System.out.print("\n是,请输入1,否则输入0:"); day += kb.nextInt() * (1 << 4); System.out.println("你的生日是:"+day+" 号"); } }
case 8:“读出金额”
需求:
- 给定5位整数2位小数的金额,将其转换为半中文大写金额
- 89735.12 转换为 8万9千7百3十5元1角2分
限制:
由于目前掌握知识不足,还做不到全中文
思路
89735.12 * 100 = 8973512分
分别提取万 千 百 十 元 角 分
除法可以留高位
取余可以舍高位
8973512 / 1000000 = 8
8973512 % 1000000 = 973512
973512 / 100000 = 9
…
输出有两种方式,①打印不换行②拼接
代码
package case8; public class Case8 { public static void main(String[] args) { String result = ""; double money = 98735.12; int fen = (int)(money * 100); int wan = fen / 1000000; result += (wan + "萬"); fen = fen % 1000000; int qian = fen / 100000; result += (qian + "仟"); fen = fen % 100000; int bai = fen / 10000; result += (bai + "佰"); fen = fen % 10000; int shi = fen / 1000; result += (shi + "拾"); fen = fen % 1000; int yuan = fen / 100; result += (yuan + "圆"); fen = fen % 100; int jiao = fen / 10; result += (jiao + "角"); fen = fen % 10; result += (fen + "分"); System.out.println(result); } }
这篇关于Java Case Study 3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南