八枚硬币中存在着一枚假币(一)
2009-11-14 21:59
218 查看
前些日子朋友问我这样一道题: 八枚硬币中存在着一枚假币,假币特点:要么轻要么重,用程序描述下来 要求取出假币,并判断轻重。
如下程序,如有不对,敬请批正
package run;
/**
* 八枚硬币中存在着一枚假币,假币特点:要么轻要么重,用程序描述下来
*
* 要求取出假币,并判断轻重
*
* @author JRunner
*
* Email:jrunner@126.com
*/
public class Test_1 {
/**
* 方法一
*/
public static void main(String[] args) {
int[] c = { 4, 4, 4, 4, 4, 4, 4, 10 };
int j = 0;// 记录两枚不同的硬币中的一个 范围1-7
for (int i = 1; i < 8; i++) {
if (c[i] != c[0]) {
j = i;
break;
}
}
// 如果运气好,第一次就取出不同点两枚c[0] 、 c[1]
if (j == 1) {
if (c[0] == c[2]) {
print(c[1], c[2], 1);
} else {
print(c[0], c[2], 0);
}
} else {
print(c[j], c[0], j);
}
}
private static void print(int jia, int zhen, int i) {
if (jia > zhen) {
System.out.println("位置为" + (i + 1) + "是假币,且偏重");
} else {
System.out.println("位置为" + (i + 1) + "是假币,且偏轻");
}
}
}
本文出自 “艾客” 博客,请务必保留此出处http://jrunner.blog.51cto.com/1015356/227189
如下程序,如有不对,敬请批正
package run;
/**
* 八枚硬币中存在着一枚假币,假币特点:要么轻要么重,用程序描述下来
*
* 要求取出假币,并判断轻重
*
* @author JRunner
*
* Email:jrunner@126.com
*/
public class Test_1 {
/**
* 方法一
*/
public static void main(String[] args) {
int[] c = { 4, 4, 4, 4, 4, 4, 4, 10 };
int j = 0;// 记录两枚不同的硬币中的一个 范围1-7
for (int i = 1; i < 8; i++) {
if (c[i] != c[0]) {
j = i;
break;
}
}
// 如果运气好,第一次就取出不同点两枚c[0] 、 c[1]
if (j == 1) {
if (c[0] == c[2]) {
print(c[1], c[2], 1);
} else {
print(c[0], c[2], 0);
}
} else {
print(c[j], c[0], j);
}
}
private static void print(int jia, int zhen, int i) {
if (jia > zhen) {
System.out.println("位置为" + (i + 1) + "是假币,且偏重");
} else {
System.out.println("位置为" + (i + 1) + "是假币,且偏轻");
}
}
}
本文出自 “艾客” 博客,请务必保留此出处http://jrunner.blog.51cto.com/1015356/227189
相关文章推荐
- 八枚硬币中存在着一枚假币(二)
- 减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况
- 八枚硬币求解假币
- n枚硬币找出假币问题(包含一枚假币)
- 从算法学起C语言--八枚硬币
- 算法题----称硬币: 2n(并不要求n是2的幂次方)个硬币,有两个硬币重量为m+1, m-1, 其余都是m 分治 O(lgn)找出假币
- 101个硬币中有一个假币,有一个无砝码的天平,称两次,判断假币比真币重还是轻。
- 八枚硬币
- 101个硬币100真、1假,真假区别在于重量。请用无砝码天平称两次给出真币重还是假币重的结论。
- 竞争和分享,马云的一枚硬币
- UVA147硬币组合问题,double型和int型的输出格式,以及double型本身存在的精度问题
- 有101个硬币,100个真的,1个假的,形状相同,重量不一样,用无码天秤称,称两次,假币重还是真币重?
- 小a和小b一起玩一个游戏,两个人一起抛掷一枚硬币,正面为H,反面为T。两个人把抛到的结果写成一个序列。如果出现HHT则小a获胜,游戏结束。如果HTT出现则小b获胜。问a获胜的概率?
- N个硬币_其中一个假币_不知偏轻或偏重__称K次_找出假币
- 在n个硬币中找出假币
- 八枚硬币问题
- 翻转一枚硬币,最大的相同硬币数
- 八枚硬币问题
- 3.10 把一张一元纸币换成一分、二分和五分的硬币,假如每种至少一枚,问有多少 种换法?编程将各种换法显示出来。
- 有101枚硬币,100真,1假,若称两次,怎么求出假币比真币轻还是重。