编写一个Java程序,开始时生成一个0-9的随机数字,当用户会员号的百位与十位的差值与随机数字相等时为中奖

用do….while实现... 用 do….while实现 展开
 我来答
liumangcjd
2011-02-08 · TA获得超过278个赞
知道答主
回答量:83
采纳率:0%
帮助的人:95.7万
展开全部
// 包 import java.util.Random;
public static void main(String[] args) {
Random random = new Random(); // 随机数类
int number = random.nextInt(10); // 随机生成 0 - 9 的数字
int userNumber = 0; // 存储用户号码的变量
boolean sign = false; // 是否循环的标记
while (sign == false) { // 循环
userNumber = random.nextInt(1000); // 随机生成 0 - 999 的数字
sign = checkUserNum(userNumber , number); // 调用方法
}
}

/**
* 检查用户是否中奖
* @param userNumber 随机生成的用户号码
* @param number 开奖号码
* @return 返回是或否
*/
public static boolean checkUserNum(int userNumber , int number) {
boolean sign = false; // 是否中奖标记
int firstNum; // 声明一个变量记录百位
int nextNum; // 声明一个变量记录十位
String buff = new Integer(userNumber).toString(); // 把 用户号码转换成字符串
if (buff.length() == 3) { // 判断生成的用户号码是否 大于 100
firstNum = Integer.parseInt(buff.substring(0, 1)); // 截取百位
nextNum = Integer.parseInt(buff.substring(1, 2)); // 截取十位
if(firstNum - nextNum == number){ // 如果 百位减十位等于开奖号码,则中奖
System.out.println("开奖号码是:" + number);
System.out.println("中奖用户号码是:" + buff);
sign = true;
}
}
return sign; // 返回
}
运行结果:

开奖号码是:2
中奖用户号码是:427

开奖号码是:7
中奖用户号码是:816
百度网友b70e96f
2011-02-09
知道答主
回答量:23
采纳率:0%
帮助的人:11.8万
展开全部
import java.util.Random;

public class LotteryDraw {

/**
* @param args
*/
/**
* 倒计时
*/
public static void keepTime(){
for (int i = 5; i > 0; i--) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 产生0-9随机数
*/
public static int random(){
Random random=new Random();
return random.nextInt(10);

}
public static void main(String[] args) {
System.out.println("稍等片刻我们将产生本期奖号码及中奖会员!!!");
keepTime();
int num=random();//随机数
System.out.println("号码为:"+num);
int []userId={123,421,341,2342,23452,4523,342,5433,23425};//会员号
int badNum=0;//百位和个位差
int i=0;
do{
if(i<userId.length){
String num1 = userId[i]+"";
int bNum=Integer.valueOf(num1.substring(num1.length()-2, num1.length()-1));//得到百位数字
int sNum=Integer.valueOf(num1.substring(num1.length()-1, num1.length()));//得到个位数字
badNum=bNum-sNum;

if(badNum<0){
badNum=badNum*(-1);//差值为负数转正
}
if(badNum==num){
System.out.println("本期中奖会员为"+userId[i]);
if(i==userId.length){
break;
}
}
}else if(i>userId.length||badNum!=num){
System.out.println("没有中奖号码!");
break;
}
i++;
}while(true);

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式