求助: Java基础问题求助: 如何求三个数字中只有一个相同??????
2013-04-06 14:57
489 查看
这里是源程序: 请帮帮忙,给该支出该从哪里思考????
/**游戏:彩票
* 描述:产生三位整数的彩票。 程序提示用户输入一个三位整数,
* 然后依照下面的规则判定用户是否赢得奖金:
* 1. 如果用户输入的所有数匹配彩票的确切顺序,奖金是10 000美金;
* 2. 如果用户输入的所有数匹配彩票的所有数字,奖金是3000美金;
* 3. 如果用户输入的其中一个数匹配彩票号码中的一个数,奖金是1000美金。
*
* 程序分析:
* 1. 使用取余和除法的方法,把三位整数进行分解;[彩票和用户的猜测]
* 2. 输入的所有数匹配彩票的所有数字有多少可能???怎么编程实现这些可能
* 3. 只有一个数匹配有多少可能?? 怎么进行编程实现
*/
package Testforchapter3;
import javax.swing.JOptionPane;
public class Exercise1 {
public static void main(String[] args) {
// Create a three bits number call lottery
int lottery = (int) (100 + Math.random() * 900);
System.out.println("The value of the lottery is: " +lottery);
// the range of the value is 100 to 999
int[] lotteryArray = resolveData(lottery);
// Prompt the user to enter his guess
int guess = Integer
.parseInt(JOptionPane
.showInputDialog("Enter your guess for the lottery[100 - 999]"));
int[] guessArray = resolveData(guess);
// Call the method for result
rewardRank(lotteryArray, guessArray);
}
// resolve the digit to three number
public static int[] resolveData(int data) {
int[] singleNumber = new int[3];
singleNumber[0] = data % 10;
singleNumber[1] = data / 10 % 10;
singleNumber[2] = data / 100;
return singleNumber;
}
// judge the reward from two arrays
public static void rewardRank(int[] lotteryCode, int[] guessCode) {
// 判断一等奖
if (lotteryCode[0] == guessCode[0] && lotteryCode[1] == guessCode[1]
&& lotteryCode[2] == guessCode[2]) {
JOptionPane.showMessageDialog(null, "恭喜你!一等奖, 奖金10 000美金!!!");
} else {
// 判断二等奖
boolean b1 = lotteryCode[0] == guessCode[0]
&& lotteryCode[1] == guessCode[2]
&& lotteryCode[2] == guessCode[1];
boolean b2 = lotteryCode[0] == guessCode[1]
&& lotteryCode[1] == guessCode[0]
&& lotteryCode[2] == guessCode[2];
boolean b3 = lotteryCode[0] == guessCode[1]
&& lotteryCode[1] == guessCode[2]
&& lotteryCode[2] == guessCode[0];
boolean b4 = lotteryCode[0] == guessCode[2]
&& lotteryCode[1] == guessCode[1]
&& lotteryCode[2] == guessCode[0];
boolean b5 = lotteryCode[0] == guessCode[2]
&& lotteryCode[1] == guessCode[0]
&& lotteryCode[2] == guessCode[1];
if (b1 || b2 || b3 || b4 || b5) {
JOptionPane.showMessageDialog(null, "恭喜你,二等奖,奖金3000美金!!!");
} else {
boolean a1 = lotteryCode[0] != guessCode[0] && lotteryCode[0] != guessCode[1] && lotteryCode[0] != guessCode[2];
boolean a2 = lotteryCode[1] != guessCode[0] && lotteryCode[1] != guessCode[1] && lotteryCode[1] != guessCode[2];
boolean a3 = lotteryCode[2] != guessCode[0] && lotteryCode[2] != guessCode[1] && lotteryCode[2] != guessCode[2];
if (a1 && a2 && a3) {
JOptionPane.showMessageDialog(null, "好运气不远了,继续努力!!!");
}
}
}
// 判断三等奖 这个地方不知道该这么写??? 求助?????
boolean c1 = lotteryCode[0] == guessCode[0];
}
}
/**游戏:彩票
* 描述:产生三位整数的彩票。 程序提示用户输入一个三位整数,
* 然后依照下面的规则判定用户是否赢得奖金:
* 1. 如果用户输入的所有数匹配彩票的确切顺序,奖金是10 000美金;
* 2. 如果用户输入的所有数匹配彩票的所有数字,奖金是3000美金;
* 3. 如果用户输入的其中一个数匹配彩票号码中的一个数,奖金是1000美金。
*
* 程序分析:
* 1. 使用取余和除法的方法,把三位整数进行分解;[彩票和用户的猜测]
* 2. 输入的所有数匹配彩票的所有数字有多少可能???怎么编程实现这些可能
* 3. 只有一个数匹配有多少可能?? 怎么进行编程实现
*/
package Testforchapter3;
import javax.swing.JOptionPane;
public class Exercise1 {
public static void main(String[] args) {
// Create a three bits number call lottery
int lottery = (int) (100 + Math.random() * 900);
System.out.println("The value of the lottery is: " +lottery);
// the range of the value is 100 to 999
int[] lotteryArray = resolveData(lottery);
// Prompt the user to enter his guess
int guess = Integer
.parseInt(JOptionPane
.showInputDialog("Enter your guess for the lottery[100 - 999]"));
int[] guessArray = resolveData(guess);
// Call the method for result
rewardRank(lotteryArray, guessArray);
}
// resolve the digit to three number
public static int[] resolveData(int data) {
int[] singleNumber = new int[3];
singleNumber[0] = data % 10;
singleNumber[1] = data / 10 % 10;
singleNumber[2] = data / 100;
return singleNumber;
}
// judge the reward from two arrays
public static void rewardRank(int[] lotteryCode, int[] guessCode) {
// 判断一等奖
if (lotteryCode[0] == guessCode[0] && lotteryCode[1] == guessCode[1]
&& lotteryCode[2] == guessCode[2]) {
JOptionPane.showMessageDialog(null, "恭喜你!一等奖, 奖金10 000美金!!!");
} else {
// 判断二等奖
boolean b1 = lotteryCode[0] == guessCode[0]
&& lotteryCode[1] == guessCode[2]
&& lotteryCode[2] == guessCode[1];
boolean b2 = lotteryCode[0] == guessCode[1]
&& lotteryCode[1] == guessCode[0]
&& lotteryCode[2] == guessCode[2];
boolean b3 = lotteryCode[0] == guessCode[1]
&& lotteryCode[1] == guessCode[2]
&& lotteryCode[2] == guessCode[0];
boolean b4 = lotteryCode[0] == guessCode[2]
&& lotteryCode[1] == guessCode[1]
&& lotteryCode[2] == guessCode[0];
boolean b5 = lotteryCode[0] == guessCode[2]
&& lotteryCode[1] == guessCode[0]
&& lotteryCode[2] == guessCode[1];
if (b1 || b2 || b3 || b4 || b5) {
JOptionPane.showMessageDialog(null, "恭喜你,二等奖,奖金3000美金!!!");
} else {
boolean a1 = lotteryCode[0] != guessCode[0] && lotteryCode[0] != guessCode[1] && lotteryCode[0] != guessCode[2];
boolean a2 = lotteryCode[1] != guessCode[0] && lotteryCode[1] != guessCode[1] && lotteryCode[1] != guessCode[2];
boolean a3 = lotteryCode[2] != guessCode[0] && lotteryCode[2] != guessCode[1] && lotteryCode[2] != guessCode[2];
if (a1 && a2 && a3) {
JOptionPane.showMessageDialog(null, "好运气不远了,继续努力!!!");
}
}
}
// 判断三等奖 这个地方不知道该这么写??? 求助?????
boolean c1 = lotteryCode[0] == guessCode[0];
}
}
相关文章推荐
- Java基础-如何编写一个JAVA的队列类-Java基础-Java-编程开发
- 一个简单问题,Java里,如何得到一个月有多少天???
- java如何做到判断一个字符串是否是数字
- java 如何判断一个字符串是数字
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
- Java基础:如何解决double和float精度不准的问题
- java如何监控一个方法的运行时间 [问题点数
- java基础--如何创建一个线程
- JAVA中如何判断一个输入是数字(小数和整数)还是字符串?
- java基础问题---java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- java jxl导出excel,当数字超过11位变成科学计数法,如何转换成数字问题解决方法
- 如何导出Java项目成为一个可以直接双击运行的jar文件的问题
- JAVA基础(37) 如何解决SecureRandom性能问题
- 用java写关于删除一个字符串的字符以及删除一个字符串与另一个字符串中相同字符的问题
- 查找算法之查找一个数组中两两数字相同,只有其中两个数字是不一样的,将其找出
- Java基础问题---计算一个整数的百位上的数,源代码
- java中如何取到一个对象的所有属性值,并且在创建一个相同的对象
- java基础问题---什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(2)