有錯誤的地方望各位好友幫忙修改,謝謝! ...
package com.j05.day0317.test; import java.util.Scanner; public class test { public static void main(String[] args) { abc1(); } /* * 編程輸入整數a和b,若a或b大於100,則輸出a、b的和與100的差,否則輸出兩數之和。 */ public static void abc1(){ Scanner sc=new Scanner(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 void abc2(){ Scanner sc=new Scanner(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 void abc3(){ Scanner sc=new Scanner(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 void abc4(){ Scanner sc=new Scanner(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 void abc5(){ Scanner sc=new Scanner(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 void abc6(){ Scanner sc=new Scanner(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 void abc07(){ Scanner sc=new Scanner(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 void abc08(){ for(int a=1;a<=100;a++){ if(a%2==0){ System.out.println("偶數為:"+a); } } } //方法二 public static void abc09(){ int a=2; while(a<=100){ System.out.println("偶數為:"+a); a+=2; } } /* * 輸出1+2+3+4+...+100的和 */ //方法一 public static void abc10(){ int a=0; for(int i=1;i<=100;i++){ a=a+i; } System.out.println(a); } //方法二 public static void abc11(){ int a=1; int b=0; while(a<=100){ b=a+b; a++; } System.out.println(b); } /* * 由輸入的值決定迴圈的執行次數,迴圈變數預設從1開始 */ //方法一 public static void abc12(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入一個正整數"); int a=sc.nextInt(); int b=1;//b=0時,後面的迴圈次數改成b+1 while(b<a){ System.out.println("我已經迴圈了"+b+"次了"); b++; } } //方法二 public static void abc13(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入一個正整數"); int i=sc.nextInt(); for(int num=1;num<=i;num++){ System.out.println("我已經迴圈了"+num+"次了"); } } /* * 用戶輸入一個10以內的數字,通過運算求出該數字的階乘 */ public static void abc14(){ Scanner sc=new Scanner(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 void abc15(){ Scanner sc=new Scanner(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 void abc16(){ String username=""; String password=""; Scanner sc=new Scanner(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 void abc17(){ 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 void abc18(){ 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 void abc19(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入一個字元:"); String a=sc.nextLine(); int zimu=0; int num=0; int other=0; for(int i=0;i<a.length();i++){ char ch=a.charAt(i); if('0'<=ch&&ch<='9'){ 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 void abc20(){ 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 void abc21(){ 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 void abc22(){ Scanner sc=new Scanner(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 void abc23(){ 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 void abc24(){ 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 void abc25(){ 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 void abc26(){ 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 void abc27(){ 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 void abc28(){ 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 void abc29(){ 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 void abc30(){ 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 void abc31(){ 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 void abc32(){ 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 void abc33(){ 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 void abc34(){ 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 void abc35(){ int sum=1; int num=0; do{ num++; sum*=num;//sum=sum*num }while(sum<5000); System.out.println(num-1); } //方法三 public static void abc36(){ int sum=1; int num=0; while(sum<5000){ num++; sum=sum*num; } System.out.println(num-1); } /* * 三個班的同學參加比賽,每個班五名同學 * 1.求出各班的總分和平均分 * 2.求出各班的最高分 * 3.求出全部分數中的最高分 */ public static void abc37(){ Scanner sc=new Scanner(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<zg){ all_zg=zg; } System.out.println("全部最高"+all_zg); } } /* * 100~200之間有哪些數是質數? */ public static void abc38(){ 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 void abc39(){ 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 void abc40(){ 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 void abc41(){ 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 void abc42(){ 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 void abc43(){ 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 void abc44(){ Scanner sc=new Scanner(System.in); int [] a=new int[5]; for(int i=0;i<=a.length-1;i++){ System.out.println("請輸入第"+