//求1+2+3+...+100
class Demo01{
public static void main(String[] args) {
sum=0; //用于存放最后的结果
i=1; //从1开始
while(i<=100){ //i小于等于100是否为真
sum+=i; //为真,加i
i++; //i加1
}
System.out.println(sum); //不为真,打印结果
}
}
/*
猜电脑的随机生成的数字
*/
import java.util.*;
class Demon02{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int com=new Random().nextInt(101);//[0,n) //电脑随机生成1-100之间一个数
while(true){ //无条件开启死循环,因为没有初始条件,也不知道什么时候结束
System.out.print("Guess a number:"); //提示用户输入一个数
int num=scanner.nextInt(); //接受用户输入
if(num>com){ //如果用户猜测的数字大于随机数,提示数字太大
System.out.println("too high");
}else if (com==num){ //如果用户猜测的数字等于随机数,提示正确
System.out.println("yes,you are right!");
break;
}else{ //如果用户猜测的数字小于随机数,提示数字太小
System.out.println("too low");
}
}
}
}
/* 哨兵法 */
import java.util.Scanner;
class Demon03{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int number=scanner.nextInt();
while(true){ //无条件先进入循环
boolean flag=true; //定义一个“哨兵”
for(int i=2;i<number;i++){ //进入for循环
if(number%i==0){ 只要i是number的因子
System.out.print(i+","); //打印i
number=number/i; //将商给number继续查找因子
flag=false; //将“哨兵”值改变
break; //跳出当前循环
}
}
if(flag){ //当循环时是正常结束,则不会改变flag的值,判断值是否被改变
System.out.print(number+"。"); //没有改变打印最后一个因子
break; //跳出死循环
}
}
}
}
import java.util.*;
class Demon04{
public static void main(String[] args) {
String[] arr={"剪刀","石头","布"}; //定义一个数组用来存放出现的类型
Scanner scanner=new Scanner(System.in);
Random random=new Random();
int usrCount=0; //用户赢的次数
int comCount=0; //电脑赢的次数
// 规定剪刀0 石头1 布2
while(true){ //先进入循环
//用户输入一个
System.out.print("请输入 剪刀0 石头1 布2:");
int usr;
try{
usr=scanner.nextInt(); //IO流阻塞
}catch(java.util.InputMismatchException e){
System.out.println("输入错误,请重新输入");
scanner=new Scanner(System.in);
continue; //跳到下一次循环
}
if(usr<0||usr>2){ //如果用户没有输入剪刀、石头、布任何一个
System.out.println("输入错误,请重新输入");
continue; //跳到下一次循环
}
//电脑随机生成一个
int com=random.nextInt(3); //[0,3)
if(usr==com){ //平局
System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",平局!");
}else if(usr-com==1||usr-com==-2){ //玩家赢
System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",玩家赢!");
usrCount++;
}else{ //电脑赢
System.out.println("玩家是"+arr[usr]+",电脑是"+arr[com]+",电脑赢!");
comCount++;
}
if(usrCount==2 || comCount==2){ //只要任何一方赢了两次
break; //死循环结束
}
}
if(usrCount==2){ //打印最终结果
System.out.println("最终,玩家赢!");
}else{
System.out.println("最终,电脑赢!");
}
}
}
import java.util.Scanner;
class Demon05{
public static void main(String[] args){
//输入一个十进制整数
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字:");
int number=scanner.nextInt();
String str=""; //存放计算的结果
while(true){ //无条件进入循环
int rest=number%16; //先将输入的数模16
if(rest<10){ //余数小于10
str=rest+str; //直接将余数加结果,将第一的计算的值放在第一位
}else{
str=(char)(55+rest)+str; //余数大于10,将对应的ASCII码转化为字符,不懂的可以去看一下ASCII码表
}
number=number/16; //将number变成模16的商
if(number==0){ //此时商为0
break; //数字已转化完,跳出死循环
}
}
System.out.println(str);
}
}
import java.util.Scanner;
class Demon06{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Enter number:");
int max=0; //保存输入最大的数
int count=0; //保存最大数被输入了次数
while(true){ // 先进入循环
int num=scanner.nextInt(); //接受输入
if(num==0){ //接受的输入为0
break; //结束死循环
}
if(num>max){ //输入的数字不为0,且大于当前最大的数
max=num; //保存最大数
count=1; //计数器加1
}else if(num==max){ //如果与当前数最大数相等
count++; //计数器加1
}
}
System.out.println(max+"的次数为"+count); //最后打印结果
}
}