问题说明:
现在有八枚银币abcdefg,已知其中一枚是假币,其重量不同于真币,但不知道是轻还是重,如何用天平以最小的比较次数决定出那个是假币,并得知假币是比真币轻还是重。
public class Coins {
private int[] coins;
public Coins() {
coins = new int[8];
for(int i = 0; i < 8; i++)
coins[i] = 10;
}
public void setFake(int weight) {
coins[(int) (Math.random() * 7)] = weight;
}
public void fake() {
if(coins[0]+coins[1]+coins[2] ==
coins[3]+coins[4]+coins[5]) {
if(coins[6] > coins[7])
compare(6, 7, 0);
else
compare(7, 6, 0);
}
else if(coins[0]+coins[1]+coins[2] >
coins[3]+coins[4]+coins[5]) {
if(coins[0]+coins[3] == coins[1]+coins[4])
compare(2, 5, 0);
else if(coins[0]+coins[3] > coins[1]+coins[4])
compare(0, 4, 1);
if(coins[0]+coins[3] < coins[1]+coins[4])
compare(1, 3, 0);
}
else if(coins[0]+coins[1]+coins[2] <
coins[3]+coins[4]+coins[5]) {
if(coins[0]+coins[3] == coins[1]+coins[4])
compare(5, 2, 0);
else if(coins[0]+coins[3] > coins[1]+coins[4])
compare(3, 1, 0);
if(coins[0]+coins[3] < coins[1]+coins[4])
compare(4, 0, 1);
}
}
protected void compare(int i, int j, int k) {
if(coins[i] > coins[k])
System.out.print("\n假币 " + (i+1) + " 较重");
else
System.out.print("\n假币 " + (j+1) + " 较轻");
}
public static void main(String[] args) {
if(args.length == 0) {
System.out.println("输入假币重量(比10大或小)");
System.out.println("ex. java Coins 5");
return;
}
Coins eightCoins = new Coins();
eightCoins.setFake(Integer.parseInt(args[0]));
eightCoins.fake();
}
}
分享到:
相关推荐
coins-security-1.0jar包
2019 Standard Catalog of World Coins, 2001-Date, 13th edition
I = imread( C:\MATLAB701\toolbox\images\imdemos\coins.png ) imshow(I) figure, imhist(I,64)
动态规划题解coins.cpp
poj 3260 The Fewest Coins.md
coins.aca056c6.css
Coins
COINS 编译器基础架构为 Intel x86、Sparc、Arm、Mips、PowerPC 等提供模块化的编译器组件,例如 C 前端、Fortran 前端、优化器、并行器和后端,以便编译器开发人员可以轻松构建自己的通过组合或修改组件或添加新...
资源分类:Python库 所属语言:Python 资源全名:Coins-0.1.11.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Fifa coin auto buyer
这需要计算出每枚硬币的相对大小,进而用于对它是哪种硬币进行分类。 现在,假设背景颜色为白色(将硬币放在一张打印纸上)。 没有一个硬币相互重叠或堆叠。 硬币的直径至少为 MIN_COIN_DIAMETER 仅支持便士、镍币...
资源来自pypi官网。 资源全名:py_aiger_coins-3.3.0-py3-none-any.whl
基于MFC的画硬币小程序 提供菜单 快捷键 属性栏等选项 简单 代码易懂
资源来自pypi官网。 资源全名:football-strike-hack-cheats-coins-2.0.3-2.0.2.tar.gz
此工程是自己开发的ogre游戏(元素有:推币,转轮,转盘,发射币,模拟碰撞),有物理引擎newton
get-the-coins
tca-flip-coins
coins_counter 基于Matlab和机器视觉的硬币计数系统 Coin counting system based on machine vision and Matlab 描述 用手机拍摄得到一堆硬币图片(详见coin_images文件夹内的示例图片),通过机器视觉的相关知识,...