您的位置:首页 > 其它

培训第一周的练习题目

2017-08-09 20:28 337 查看
4000
1、得到一个随机数,如果奇数,打印 xxx 是奇数 如果是偶数 ,打印 xxx 是偶数

public class JudgeRanOldEven {

/**
* 得到一个随机数,如果奇数,打印 xxx 是奇数 如果是偶数 ,打印 xxx 是偶数
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final int MIN=1;
final int MAX=100;
Random random=new Random();
int number1=(int)(Math.random()*(MAX-MIN)+MIN);
int number2=(random.nextInt()>>>1)%(MAX-MIN)+MIN;
System.out.println(number1);
System.out.println(number2);
if(number1%2==0){
System.out.println(number1+"是偶数");
}else{
System.out.println(number1+"是奇数");
}
}
}


2、得到一个随机字符[A-Z]or[a-z] (大小写也要随机),并打印.

public static void main(String[] args) {
// TODO Auto-generated method stub
int number=(int)(Math.random()*2);
System.out.println(number);
if(number==1){
char upper=(char)((int)(Math.random()*26+65));
System.out.println(upper);
}else{
char lower=(char)((int)(Math.random()*26+97));
System.out.println(lower);
}

}


3、需求:将随机数的5-8位所代表的整数求出

public static void main(String[] args) {
// TODO Auto-generated method stub
final int MIN=100;
final int MAX=1000;
Random random=new Random();
int number=(random.nextInt()>>>1)%(MAX-MIN)+MIN;
System.out.println(number);
System.out.println(Integer.toBinaryString((number&0xf0)>>4));
}


4、随机(自己选择生成方式)生成两个数,[0-100],然后输出, 然后实现用一个int类型的变量num 保存两个数的算法。

思路:可以使用num 高16bit 保存 a 。低16bit 保存b 然后输出 num ,然后再将 a,b 从 num 中解析出来。

public static void main(String[] args) {
// TODO Auto-generated method stub
final int MIN=0;
final int MAX=100;
Random random=new Random();
int a=(int)(Math.random()*(MAX-MIN+1));
int b=(random.nextInt()>>>1)%(MAX+1);
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(b));
int num=a<<16;
System.out.println(Integer.toBinaryString(num+b));
}


5、模拟一次打斗 随机产生一个人的生命值hp[50-100],然后打印。 然后才随机产生一个伤害值[30-60],暴击的概率为50%,1.5倍伤害 。。

然后将伤害值也打印,如果出现暴击的话,要提示。然后根据此次的伤害和生命值,最后输出 人 是否被 over掉。

如果没有over,输出 最后的血量 hp。

暴击是否出现的算法:产生一个随机数 0-1, 可以把0 or 1 任意一个值出现的时候认为出现暴击就可以了。

public static void main(String[] args) {
// TODO Auto-generated method stub
final int HP_MIN=50;
final int HP_MAX=100;
final int HM_MIN=30;
final int HM_MAX=60;
int crit=(int)(Math.random()*2);
int hp=(int)(Math.random()*(HP_MAX-HP_MIN+1)+HP_MIN);
int hm=(int)(Math.random()*(HM_MAX-HM_MIN+1)+HM_MIN);
System.out.println("此人初始生命值:"+hp);
System.out.println("随机打出的伤害:"+hm);
if(crit==1){
if(hp-hm*1.5>=0){
System.out.println("此人剩余生命值:"+(hp-hm*1.5));
}else{
System.out.println("此人被over");
}
}else{
if(hp-hm>=0){
System.out.println("此人剩余生命值:"+(hp-hm));
}else{
System.out.println("此人被over");
}
}

}


6、求随机数[100-1000),人性化打印,求得该数的逆序的数值形式,并打印。(两种方法生成随机数)

public static void main(String[] args) {
// TODO Auto-generated method stub
final int MIN=100;
final int MAX=1000;
int number=(int)(Math.random()*(MAX-MIN)+MIN);
System.out.println("第一种生成随机数的方法:"+number);
Random random=new Random();
int number2=(random.nextInt()>>>1)%(MAX-MIN)+MIN;
System.out.println("第二种生成随机数的方法:"+number2);
int unitNum=number/100;
int decadeNum=number/10%10;
int hundredNum=number%100%10;
int newNumber=hundredNum*100+decadeNum*10+unitNum;
System.out.println("这个随机数倒序输出:"+newNumber);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: