Java、九个硬币的正反面
一个3 * 3的矩阵中放置了9个硬币,这些硬币有些面朝上有朝下。可以使用3 * 3矩阵中的0表示正面 1 表示反面:
0 0 0 1 0 1 1 1 0 1 0 0
0 1 0 0 0 1 1 0 0 1 1 1
0 0 0 1 0 0 0 0 1 1 1
每个状态使用一个二进制数表示:
000010000 101001100 110100001 100111110
总共512种可能,所以可以使用十进制数0···511表示所有状态。编写一个程序,提示用户输入一个在0到511之间的数字,然后用字符H和T表示的对应的矩阵。0表示H,1表示T。
package pack2;import java.util.Scanner;public class NineCoins {public static void main(String[] args) {game();}/**九个正面和背面*/public static void game() {try(Scanner input = new Scanner(System.in);) {System.out.print("Enter a number between 0 and 511: ");printMatrix(getArray(input.nextInt()));}}/**获取字符数组*/public static char[][] getArray(int number) {final int ROW_COLUMN = 3; //行列数char[][] coins = new char[ROW_COLUMN][ROW_COLUMN]; //硬币//整数转换为二进制后作为创建字符串缓冲器的参数StringBuffer stringBuffer = new StringBuffer(Integer.toBinaryString(number));stringBuffer.reverse(); //字符串缓冲器逆转while(stringBuffer.length() < 9)stringBuffer.append(0); //字符串缓冲器长度小于9时,前面补0for (int i = 0, k = stringBuffer.length() - 1; i < coins.length; i++) for (int j = 0; j < coins.length; j++) coins[i][j] = (stringBuffer.charAt(k--) == '1') ? 'T' : 'H';return coins;}/**打印矩阵*/public static void printMatrix(char[][] array) {for (int i = 0; i < array.length; i++) {for (int j = 0; j < array.length; j++) System.out.print(" " + array[i][j]);System.out.println();}}
}
Java、九个硬币的正反面相关推荐
- Java黑皮书课后题第8章:**8.11(游戏:九个硬币的正反面)一个3*3的矩阵中放置了9个硬币,这些硬币有些面朝上有朝下。1表示正面0表示反面,每个状态使用一个二进制数表示。使用十进制数表示状态
**8.11(游戏:九个硬币的正反面)一个3*3的矩阵中放置了9个硬币,这些硬币有些面朝上有朝下.1表示正面0表示反面,每个状态使用一个二进制数表示. 题目 题目描述与运行示例 破题:注意对应关系(已 ...
- Java黑皮书课后题第3章:3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面。随即产生一个整数0或1,分别表示
3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 题目 题目概述 破题 代码 题目 题目概述 3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面 随即 ...
- 你有没有扔过一枚硬币选择正反面?
除了阳光没有什么可以笼罩世界 除了雨没有什么可以画出彩虹 除了雪没有什么可以洁白大地 除了风没有什么可以吹动树叶 你有没有看到自己眼中的绝望 你有没有听见痛彻心肺的哭声 你有没有感到心如花朵般枯萎 你 ...
- Java实现凑硬币或者最少硬币数
标题:Java实现凑硬币或者最少硬币数 参考视频:参考视频 建议可以看完视频后,再来写代码,或者看这个blog 示例: 作为dp问题求解: public int coinChange(int[] co ...
- 动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)
动态规划算法示例汇总-Java版 组合硬币 Java解题-暴力搜索 Java解题-记忆搜索 Java解题-动态规划(两种写法) 跳台阶 Java解题-暴力递归 Java解题-动态规划 矩阵最小路径和 ...
- java九种数据类型以及封装类
在java中基本的数据类型有九种分别是boolean,char,int,float,byte,short,long,double,void. 相对应的封装类有Boolean,Character,Int ...
- java 倍数_Java硬币翻转倍数递增试算实例
import java.util.Scanner; /** * * @author cc 举例 100枚硬币,最初全部朝下,第一次将所有硬币反转过来, 第二次反转位置是2的倍数的硬币, * ...
- java模拟抛硬币的结果
本文只模拟抛一个硬币的结果, 所以只有两个结果, 一是正面朝上, 一是反面朝上 import java.util.Random;public class Coin {public static voi ...
- java模拟扔硬币的结果
这里只模拟抛一枚硬币,即只有两种结果:正面(1)和反面(0). [java] view plain copy import java.util.Random; /** * 模拟扔硬币的结果 * @ ...
最新文章
- UVA 10954 Add All
- 如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本
- linux管理磁盘和文件系统
- Flex DES加密
- Magento : Make 'Continue Shopping' button redirect to the product index page
- 环境变量简单介绍windows-linux-mac
- 【转】对Java Serializable(序列化)的理解和总结
- B00010 map
- 清华大学发布OpenNE:用于网络嵌入的开源工具包
- 可能是阿里最古老的流程引擎:PMC的架构与设计分享
- html 显示编辑xml文件,如何将 XML 文件显示为 HTML 表格展示
- QQ是成年人的“不老神仙水”
- android自定义组件(手机加速球+水面波动效果)
- Spring事务同步synchronized一起使用引发的问题
- arris sbr-ac1900p/sbr-ac3200p梅林固件
- 软件卸载不了怎么办?快用IObit Uninstaller Pro软件卸载大师
- 使用示波器的正确姿势
- 配置数据源(DataSource)
- w311m linux驱动下载,腾达W311MI网卡驱动
- 1.4_7 Axure RP 9 for mac 高保真原型图 - 案例6 【旋转的唱片4】进度条_拖拽、点击
热门文章
- 人形时钟代码php,[精品]炫酷的人形时钟代码
- 体验文心一言AI大模型生成哈佛大学、麻省理工学院、牛津大学、剑桥大学、巴黎高师、巴黎政治学院、巴黎大学、巴黎第五大学和里昂商学院简介
- css动画帧动画效果,CSS3动画之逐帧动画
- 2022年电工初级电工证(五级)电工操作证试题精选及答案
- DTSOFT Virtual CDRom Device
- 希沃白板5和html5,希沃白板5官方版
- 痤疮(又叫青春痘、粉刺、毛囊炎)
- wget和mwget的安装
- Mems传感器的七大分类是哪些?
- 【网络教程】sublime text3 如何实现自动缩进排版