packagecom.j05.day0317.test;importjava.util.Scanner;public classtest {public static voidmain(String[] args) {
abc1();
}/** 编程输入整数a和b,若a或b大于100,则输出a、b的和与100的差,否则输出两数之和。*/
public static voidabc1(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个数");int a=sc.nextInt();
System.out.println("请输入另一个数");int b=sc.nextInt();if(a>100||b>100){
System.out.println(a+b-100);
}else{
System.out.println(a+b);
}
}/** 从键盘输入三角形的三边长,判断出这三边能否构成三角形。注:任意两边之和大于第三边*/
public static voidabc2(){
Scanner sc=newScanner(System.in);
System.out.println("请输入第一边的值");int a=sc.nextInt();
System.out.println("请输入第二边的值");int b=sc.nextInt();
System.out.println("请输入第三边的值");int c=sc.nextInt();if(a+b>c&&a+c>b&&b+c>a){
System.out.println("能构成三角形");
}else{
System.out.println("不能构成三角形");
}
}/** 超市大优惠;
* 满800元以上打6折,加送珍珠项链一条;
* 满600元以上打7折,加送相册一本;
* 满400元以上打8折,加送锆石一颗;
* 满两百元以上打9折。
* 输入任意消费金额,打印其实际支付金额,若有赠送品,需显示在屏幕上。*/
public static voidabc3(){
Scanner sc=newScanner(System.in);
System.out.println("请输入消费金额");double money=sc.nextDouble();if(money>800){
System.out.println(money*0.6+"送珍珠项链一条");
}else if(money>600&&money<=800){
System.out.println(money*0.7+"送相册一本");
}else if(money>400&&money<=600){
System.out.println(money*0.8+"送锆石一颗");
}else if(money>200&&money<=400){
System.out.println(money*0.9);
}else{
System.out.println("不打折");
}
}/** 给一个不多于5位的正整数,要求:
* 1.求出它是几位数
* 2.按逆序打印出各位数字,例如原数是123应输出321*/
//方法一
public static voidabc4(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个不大于五位的正整数");int num=sc.nextInt();if(num<0||num>99999){
System.out.println("输入错误,请重新输入");
}else{if(num<=9){
System.out.println("你输入的正整数倒序位:"+num);
}else if(num>=10&&num<100){int ge=num%10;int shi=num/10;
System.out.println("你输入的正整数倒序为:"+ge+shi);
}else if(num>=100&&num<1000){int ge=num%10;int shi=num/10%10;int bai=num/100;
System.out.println("你输入的正整数倒序为:"+ge+shi+bai);
}else if(num>=1000&&num<10000){int ge=num%10;int shi=num/10%10;int bai=num/100%10;int qian=num/1000;
System.out.println("你输入的正整数倒序为:"+ge+shi+bai+qian);
}else{int ge=num%10;int shi=num/10%10;int bai=num/100%10;int qian=num/1000%10;int wan=num/10000;
System.out.println("你输入的正整数倒序为:"+ge+shi+bai+qian+wan);
}
}
}//方法二
public static voidabc5(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个不大于五位的正整数:");int a=sc.nextInt();if(a<0&&a>99999){
System.out.println("输入错误,请重新输入");
}else{if(a>=10000&&a<100000){
System.out.println("五位数,倒序为:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a%10000-a%1000)/1000+(a-(a%10000))/10000);
}else if(a>=1000&&a<10000){
System.out.println("四位数,倒序为:"+a%10+(a%100-a%10)/10+(a%1000-a%100)/100+(a-a%100)/1000);
}else if(a>=100&&a<1000){
System.out.println("三位数,倒序为:"+a%10+(a%100-a%10)/10+(a-a%100)/100);
}else if(a>=10&&a<100){
System.out.println("两位数,倒序为:"+a%10+(a-a%10)/10);
}else{
System.out.println("一位数,倒序为"+a);
}
}
}/** 输入某年某月某日,判断这一天的下一天是几月几日。*/
public static voidabc6(){
Scanner sc=newScanner(System.in);
System.out.println("请输入年份:");int year=sc.nextInt();
System.out.println("请输入月份:");int month=sc.nextInt();
System.out.println("请输入号数:");int day=sc.nextInt();if(month==1||month==3||month==5||month==7||month==8||month==10){if(day==31){
month++;
day=1;
}else{
day++;
}
}else if(month==4||month==6||month==9||month==11){if(day==30){
month++;
day=1;
}else{
day++;
}
}else if(month==12){if(day==31){
year++;
month=1;
day=1;
}else{
day++;
}
}else{if(year%4==0&&year%100!=0||year%400==0){if(day==29){
month++;
day=1;
}else{
day++;
}
}else{if(day==28){
month++;
day=1;
}else{
day++;
}
}
}
System.out.println("你输入的日期的下一天为:"+year+"年"+month+"月"+day+"天");
}/** 从键盘输入两个数和一个运算符(+、-、*、/),输出运算结果(switch语句写)*/
public static voidabc07(){
Scanner sc=newScanner(System.in);
System.out.println("请输入第一个数");int a=sc.nextInt();
System.out.println("请输入第二个数");int b=sc.nextInt();char c=sc.next().charAt(0);switch(c){case '+':System.out.println("a+b="+(a+b));break;case '-':System.out.println("a-b="+(a-b));break;case '*':System.out.println("a*b="+(a*b));break;case '/':System.out.println("a/b="+(a/b));break;default:System.out.println("输入错误");
}
}/** 输出1~100中的所有偶数*/
//方法一
public static voidabc08(){for(int a=1;a<=100;a++){if(a%2==0){
System.out.println("偶数为:"+a);
}
}
}//方法二
public static voidabc09(){int a=2;while(a<=100){
System.out.println("偶数为:"+a);
a+=2;
}
}/** 输出1+2+3+4+...+100的和*/
//方法一
public static voidabc10(){int a=0;for(int i=1;i<=100;i++){
a=a+i;
}
System.out.println(a);
}//方法二
public static voidabc11(){int a=1;int b=0;while(a<=100){
b=a+b;
a++;
}
System.out.println(b);
}/** 由输入的值决定循环的执行次数,循环变量默认从1开始*/
//方法一
public static voidabc12(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个正整数");int a=sc.nextInt();int b=1;//b=0时,后面的循环次数改成b+1
while(b
System.out.println("我已经循环了"+b+"次了");
b++;
}
}//方法二
public static voidabc13(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个正整数");int i=sc.nextInt();for(int num=1;num<=i;num++){
System.out.println("我已经循环了"+num+"次了");
}
}/** 用户输入一个10以内的数字,通过运算求出该数字的阶乘*/
public static voidabc14(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个10以内的正整数");int num=sc.nextInt();int sum=1;for(int i=1;i<=10;i++){
sum=sum*i;
System.out.println("i="+i);
System.out.println(sum);
}
System.out.println(sum);
}/** 手动输入两个数字m和n,运算求出m~n之间所有偶数的和*/
public static voidabc15(){
Scanner sc=newScanner(System.in);
System.out.println("请输入两个整数");int m=sc.nextInt();int n=sc.nextInt();int sum=0;if(m>n){for(int i=n;i<=m;i++){if(i%2==0){
sum=sum+i;
System.out.println(sum);
}
}
}else{for(int i=m;i<=n;i++){if(i%2==0){
sum=sum+i;
System.out.println(sum);
}
}
}
System.out.println(sum);
}/** 模拟注册以及登录:
* 1.注册不知道用户的操作次数,所以需要使用死循环;
* 2.档用户确定了用户名和密码后,注册成功。保存下用户输入的用户名及密码;
* 3.登录最多只能三次,如果第三次还没有成功直接退出程序
* 思考? 1.用户名和密码怎样保存
* 2.用一个只能执行三次的循环控制登录次数,但是要求第三次时其实“再见”*/
public static voidabc16(){
String username="";
String password="";
Scanner sc=newScanner(System.in);for(;;){
System.out.println("请输入用户名");
username=sc.nextLine();
System.out.println("请输入密码");
String ps1=sc.nextLine();
System.out.println("请确认密码");
String ps2=sc.nextLine();if(ps1.equals(ps2)){
System.out.println("注册成功!");
password=ps1;break;
}
}for(int i=1;i<=3;i++){
System.out.println("请输入用户名:");
String newUserName=sc.next();
System.out.println("请输入密码:");
String newPassWord=sc.next();if(newUserName.equals(username)&&newPassWord.equals(password)){
System.out.println("登录成功!");break;
}else{
System.out.println("你还有"+(3-i)+"次机会");if(i==3){
System.out.println("拜拜");
}continue;
}
}
}/** 1.把100~200中不能被3整除的数输出,每四个换行输出
**/
public static voidabc17(){int count=0;for(int i=100;i<=200;i++){if(i%3!=0){if(count<3){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}/** 输出1~100之间的奇数,每行输出5个数字*/
public static voidabc18(){int count=0;for(int i=1;i<=100;i++){if(i%2!=0){if(count<4){
System.out.print(i+"\t");
count++;
}else{
System.out.println(i);
count=0;
}
}
}
}/** 输出一个字符串,统计该字符中分别包含多少个数字,多少个字母,多少个其他字符*/
public static voidabc19(){
Scanner sc=newScanner(System.in);
System.out.println("请输入一个字符:");
String a=sc.nextLine();int zimu=0;int num=0;int other=0;for(int i=0;i
num++;
}else if('a'<=ch&&'z'>=ch){
zimu++;
}else{
other++;
}
}
System.out.println("字母"+zimu+"个");
System.out.println("数字"+num+"个");
System.out.println("其他字符"+other+"个");
}/** 有一群猪(100~200之间),如果分成4个猪一组,则多2个猪;若分成7个猪一组,则多
* 3个猪;若分成9个猪一组则多5个猪,试求出猪的总数*/
public static voidabc20(){for(int i=100;i<=200;i++){if(i%4==2&&i%7==3&&i%9==5){
System.out.println("猪的总数为:"+i);
}
}
}/** 算水仙花数量(100~999):表示三位数字,个位的三次方+十位的三次方+百位的
* 三次方=这个数本身*/
public static voidabc21(){for(int i=100;i<=999;i++){int g=i%10;int s=i/10%10;int b=i/100;if(g*g*g+s*s*s+b*b*b==i){
System.out.println(i);
}
}
}/** 计算机随机产生一个数,用户进行猜数,直到猜正确为止*/
public static voidabc22(){
Scanner sc=newScanner(System.in);for(;;){int num=(int)(Math.random()*10);
System.out.println(num);
System.out.println("请输入一个10以内整数:");int a=sc.nextInt();if(num==a){break;
}
}
System.out.println("我猜对了");
}/** 随机生成一个数(范围自定),直到生成的数是88,则跳出循环,并
* 统计一共执行了多少次(使用break)*/
public static voidabc23(){int count=0;for(;;){
count++;int num=(int)(Math.random()*100);if(num==88){
System.out.println("随机生成88了");break;
}
}
System.out.println("随机了"+count+"次");
}/** 判断1~10000之间有多少个7的倍数*/
public static voidabc24(){int count=0;for(int i=1;i<=10000;i++){if(i%7==0){
count++;
}
}
System.out.println("共有"+count+"个7的倍数");
}/** A
* AB
* ABC
* ABCD
* ABCDE*/
public static voidabc25(){for(int i=1;i<=5;i++){char a='A';for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}/** A
* BB
* CCC
* DDDD
* EEEEE*/
public static voidabc26(){char a='A';for(int i=1;i<=5;i++){for(int j=1;j<=i;j++){
System.out.print(a);
}
a++;
System.out.println();
}
}/** A
* BC
* DEF
* GHIJ
* KLMNO*/
public static voidabc27(){char a='A';for(int i=1;i<=5;i++){for(int j=1;j<=i;j++){
System.out.print(a);
a++;
}
System.out.println();
}
}/** *****
* * *
* * *
* * *
* ******/
//方法一
public static voidabc28(){for(int i=1;i<=5;i++){for(int j=1;j<=5;j++){if(i==2||i==3||i==4){if(j==2||j==3||j==4){
System.out.print(" ");continue;
}
}
System.out.print("*");
}
System.out.println();
}
}//方法二
public static voidabc29(){for(int i=1;i<=5;i++){for(int j=1;j<=5;j++){if(i>=2&&i<=4){if(j==1||j==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}else{
System.out.print("*");
}
}
System.out.println();
}
}/** *
* **
* * *
* * *
* ******/
//方法一
public static voidabc30(){for(int i=1;i<=5;i++){for(int j=1;j<=i;j++){if(i==3&&j==2){
System.out.print(" ");
}else if(i==4&&(j==2||j==3)){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}//方法二
public static voidabc31(){for(int i=1;i<=5;i++){for(int j=1;j<=i;j++){if(i==j||j==1){
System.out.print("*");
}else if(i==5){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}/** *
* **
* ***
* ****
* ******/
//方法一
public static voidabc32(){for(int i=1;i<=5;i++){for(int j=5;j>=1;j--){if(j-i>0){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}//方法二
public static voidabc33(){for(int i=1;i<=5;i++){for(int k=(5-i);k>0;k--){
System.out.print(" ");
}for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}/** 已知S=1*2*3*......*n,计算出S不大于5000时n的最大值*/
//方法一
public static voidabc34(){int sum=1;int num=0;for(int i=1;;i++){
sum=sum*i;
num=i;if(sum>5000){break;
}
}
System.out.println(num-1);
}//方法二
public static voidabc35(){int sum=1;int num=0;do{
num++;
sum*=num;//sum=sum*num
}while(sum<5000);
System.out.println(num-1);
}//方法三
public static voidabc36(){int sum=1;int num=0;while(sum<5000){
num++;
sum=sum*num;
}
System.out.println(num-1);
}/** 三个班的同学参加比赛,每个班五名同学
* 1.求出各班的总分和平均分
* 2.求出各班的最高分
* 3.求出全部分数中的最高分*/
public static voidabc37(){
Scanner sc=newScanner(System.in);int all_zg=0;for(int i=1;i<=3;i++){int gbzf=0;int pj=0;int zg=0;for(int j=1;j<=5;j++){
System.out.println("请输入"+i+"班的"+j+"同学的成绩");int num=sc.nextInt();if(j==1){
zg=num;
}
gbzf+=num;if(num>zg){
zg=num;
}if(j==5){
System.out.println(i+"班总分="+gbzf);
System.out.println(i+"班平均="+(gbzf/5));
System.out.println(i+"班最高="+zg);
}
}if(all_zg
all_zg=zg;
}
System.out.println("全部最高"+all_zg);
}
}/** 100~200之间有哪些数是质数?*/
public static voidabc38(){for(int i=100;i<=200;i++){boolean a=true;for(int j=2;j<=i-1;j++){if(i%j==0){
a=false;
}
}if(a){
System.out.print("质数为:"+i+"\t");
}
}
System.out.println();
}/** 求1+(1+2)+(1+2+3)+(1+2+3+4)+...(1+2+3+..+10)的和*/
public static voidabc39(){int sum=0;for(int i=1;i<=10;i++){int num=0;for(int j=1;j<=i;j++){
num=num+j;
}
sum=num+sum;
}
System.out.println("求得的和为:"+sum);
}/** 求1+(1*2)+(1*2*3)+(1*2*3*4)+(1*2*3*4*5)的和*/
public static voidabc40(){int sum=0;for(int i=1;i<=5;i++){int num=1;for(int j=1;j<=i;j++){
num=num*j;
}
sum=num+sum;
}
System.out.println("求得的和为:"+sum);
}/** 100元买100只鸡
* 公鸡五元一只;
* 母鸡3元一只;
* 小鸡一元3只;
* 问公鸡、母鸡和小鸡各多少只?*/
public static voidabc41(){for(int gj=0;gj<=20;gj++){for(int mj=0;mj<=33;mj++){for(int xj=0;xj<=100;xj++){if(gj+mj+xj==100&&(gj*5+mj*3+xj/3==100)&&xj%3!=0){
System.out.println("公鸡为"+gj+"只\t"+"母鸡为"+mj+"只\t"+"小鸡为"+xj+"只");
}
}
}
}
}/** 婚礼上的谎言
三个新郎为A、B、C,三个新娘为X、Y、Z。
有人想知道究竟谁和谁结婚,
于是就问新人中的三位,得到如下提示:
A说他将和X结婚; A!=X X!=C C!=Z
X说她的未婚夫是C,
C说他将和Z结婚。
这个人事后知道他们在开玩笑,全是假话,
那么,究竟谁与谁结婚呢?*/
public static voidabc42(){for(char A='X';A<='Z';A++){for(char B='X';B<='Z';B++){for(char C='X';C<='Z';C++){if(A!='X'&&C!='X'&&C!='Z' &&A!=B&&B!=C&&C!=A){
System.out.println("新郎A将和新娘"+A+"结婚");
System.out.println("新郎B将和新娘"+B+"结婚");
System.out.println("新郎C将和新娘"+C+"结婚");
}
}
}
}
}/** 有1、2、3、4个数字,能组成多少个无重复数字的三位数?都是多少?*/
public static voidabc43(){int count=0;for(int i=1;i<=4;i++){for(int j=1;j<=4;j++){for(int k=1;k<=4;k++){if(i!=j&&i!=k&&j!=k){
count++;
System.out.println(count+"组成的三位数为:"+i+j+k);
}
}
}
}
}/*数组
* 1.int [] a=new int[10];//10表示10个空间
* 赋值 a[0]=8;//从0开始
* a[1]==10;
* 2.int [] a={5,6,7,8,9};
* 3.int [] a=new int[]{5,6,7,8,9};
*
* 定义一个数组,由键盘输入值来赋值,并输出该数组的各值*/
public static voidabc44(){
Scanner sc=newScanner(System.in);int [] a=new int[5];for(int i=0;i<=a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数");
a[i]=sc.nextInt();
}for(intb:a){
System.out.print(b+"\t");
}
}/** 由键盘输入范围和个数的随机数数组,求出随机生成的数组的最大值和最小值,并求出他们的和。*/
public static voidabc45(){
Scanner sc=newScanner(System.in);
System.out.println("请输入多少以内的随机数:");int i=sc.nextInt();
System.out.println("请确定要多少个随机数:");int j=sc.nextInt();int [] a=new int[j];for(int s=0;s<=a.length-1;s++){
a[s]=(int)(Math.random()*i);
}int sum=0,min=0,max=0;boolean cc=true;for(intb:a){
sum=sum+b;
System.out.print(b+"+");if(cc){
min=b;
cc=false;
}if(b
min=b;
}if(b>max){
max=b;
}
}
System.out.print("="+sum);
System.out.println("\n最大值是:"+max+"\n最小值是:"+min);
}/** 用随机数给一个整型数组赋值,并对数组求和。(范围自定)*/
public static voidabc46(){int [] a=new int[5];for(int i=0;i<=a.length-1;i++){
a[i]=(int)(Math.random()*100);
}int sum=0;for(intb:a){
sum=sum+b;
System.out.println(b);
}
System.out.println("和为:"+sum);
}/** 对一组已经赋值的int类型的数组,找出其中的最大值和最小值*/
public static voidabc47(){int [] a={10,9,99,2,8,11,55};int max=0;int min=0;for(int i=0;i<=a.length-1;i++){if(i==0){
max=a[i];
min=a[i];
}if(max