1 package question; 2 3 import java.util.Scanner; 4 /** 5 * java經典程序 6 * @author llj 7 * @date 2019年6月2日 8 */ 9 public class Test { 10 /** 11 * 1.判斷某一年是否是閏年 12 * 能除以4不能除以100閏年 13 * 能除以400是閏年 14 */ 15 public void test1(){ 16 while(true){ 17 Scanner sc = new Scanner(System.in); 18 int a = sc.nextInt(); 19 if(a<3000&&a>0){ 20 //知足其中一個進行 21 if(a%4==0&&a%100!=0||a%400==0){ 22 System.out.println(a+"是閏年"); 23 }else{ 24 System.out.println(a+"不是閏年"); 25 } 26 }else{ 27 System.out.println("請輸入0到3000的數"); 28 } 29 } 30 } 31 /** 32 * 輸入一個分數,顯示分數的等級 33 */ 34 public void test2(){ 35 Scanner sc = new Scanner(System.in); 36 int a = sc.nextInt(); 37 String str = ""; 38 //在這個分數階段才執行 39 if(a>=0&&a<=100){ 40 switch(a/10){ 41 case 10 :str = "滿分"; break; 42 case 9:str="優";break; 43 case 8 :str = "良"; break; 44 case 7:str="中";break; 45 case 6 :str = "差"; break; 46 default :str="不及格"; 47 } 48 System.out.println(str); 49 }else{ 50 System.out.println("輸入的分數有誤"); 51 System.exit(0);//退出系統 52 } 53 } 54 /** 55 * 編寫程序求1+3+5+7+···+99 56 */ 57 public void test3(){ 58 int sum=0; 59 //i每次加2 60 for(int i=1; i<=99; i+=2){ 61 sum+=i; 62 } 63 System.out.println(sum); 64 } 65 //使用for循環打印9*9表 66 /** 67 * 1*1=1 68 1*2=2 2*2=4 69 1*3=3 2*3=6 3*3=9 70 1*4=4 2*4=8 3*4=12 4*4=16 71 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 72 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 73 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 74 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 75 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 76 */ 77 public void test4(){ 78 for(int i=1; i<10; i++){ 79 for(int j=1; j<=i; j++){ 80 System.out.print(j+"*"+i+"="+j*i+" "); 81 } 82 //每行打印完換行 83 System.out.println(); 84 } 85 } 86 /** 87 * 輸出全部的水仙花數水仙花數是指一個3位數各位數字的立方和等於自己 88 * 例如:153=1*1*1+5*5*5+3*3*3 89 */ 90 public void test6(){ 91 for(int i=100; i<1000; i++){ 92 //獲取百分位 93 int aa = i/100; 94 //獲取十分位153%100=53,53/10=5 95 int bb = i%100/10; 96 //獲取個位153%10=3 取餘數 97 int cc = i%10; 98 //System.out.println(aa +":"+bb+":"+ cc +"==="+i); 99 if(aa*aa*aa+bb*bb*bb+cc*cc*cc==i){ 100 System.out.println(i+"是水仙花數"); 101 //153是水仙花數 102 //370是水仙花數 103 //371是水仙花數 104 //407是水仙花數 105 } 106 } 107 } 108 /**求a+aa+aaa+···+aaaaaaaaa·· 109 * 其中a 等於1-9之中的一個數 110 * a的大小和最後一項的個數由用戶指定 111 */ 112 public void test7(){ 113 Scanner sc = new Scanner(System.in); 114 System.out.println("輸入a的大小!(a>0&&a<=9)"); 115 int a = sc.nextInt(); 116 System.out.println("輸入最後一項a的個數!"); 117 int num = sc.nextInt(); 118 int sum=0; 119 int b = a;//保存a的值,保證每次加的都是這個值 120 for(int i=0; i<num; i++){ 121 sum = sum + a;//用sum接收 122 a = a*10+b;//a的值表示第幾項的值, 123 } 124 System.out.println(sum); 125 /*輸入a的大小!(a>0&&a<=9) 126 6 127 輸入最後一項a的個數! 128 6 129 740736 130 */ 131 } 132 /** 133 * 求2/1+3/2+5/3+8/5+····前20項的和 134 * 規律:分子和分母的值都是前兩項的和 135 * 分子 2 3 5 8 13 21 。。。 136 * 分母 1 2 3 5 8 13 137 */ 138 public void test8(){ 139 double sum = 0; 140 double fz = 2.0; 141 double fm = 1.0; 142 for(int i=0; i<4; i++){ 143 sum+=fz/fm; 144 double temp = fm; 145 fm = fz; //下一項的分母等於上一項的分子 146 fz = fz+temp;//下一項的分子等於上一項的分子加分母 147 } 148 System.out.println(sum);//6.7666666666666675 149 150 } 151 /** 152 * 利用程序輸出如下圖形 153 * * 154 * *** 155 * ***** 156 * ******* 157 * ***** 158 * *** 159 * * 160 * 161 */ 162 public void test9(){ 163 for(int i=1; i<=13; i+=1){ 164 for(int j=1; j<=i&&j+i<=14; j++){ 165 System.out.print("*"); 166 } 167 System.out.println(); 168 } 169 170 } 171 /** 172 * 計算圓周率 173 * PI=4-4/3+4/5-4/7... 174 * 打印出第一個大於3.1415小於3.1416的值 175 */ 176 public void test10(){ 177 //分子爲4,分母 1 3 5 7 9 符號:- + - + 178 double PI=4.0; 179 double fm = 3.0; 180 int i = 0; 181 while(true){ 182 i++;//循環次數 183 if(i%2==0){//用於判斷正負號 184 PI = PI-4.0/fm; 185 }else{ 186 PI = PI+4/fm; 187 } 188 if(PI>3.1415&&PI<3.1416){ 189 System.out.println(PI);//3.1415000095284658 190 System.out.println(i);//循環次數10793 191 return; 192 } 193 fm+=2;//分母每次加2 194 } 195 196 } 197 /** 198 * 計算圓周率 199 * PI=4-4/3+4/5-4/7... 200 * 打印出第一個大於3.1415小於3.1416的值 201 */ 202 203 public void test10_1(){ 204 //分子爲4,分母 1 3 5 7 9 符號:- + - + 205 double PI=4.0; 206 double fm = 3.0; 207 double fz = -4.0; 208 int i = 0; 209 while(true){ 210 i++; 211 PI+=fz/fm; 212 fz =fz*(-1); 213 fm+=2; 214 if(PI>3.1415&&PI<3.1416){ 215 System.out.println(PI); 216 System.out.println(i);//循環次數10793 217 return; 218 } 219 } 220 } 221 222 public static void main(String[] args) { 223 Test t = new Test(); 224 t.test4(); 225 } 226 }