循環結構for語句的練習-求和思想:
需求1:求出1到10之間的數據和
1 public static void main(String[] args) { 2 3 int sum = 0; 4 for(int i = 1; i <= 10; i++) { 5 sum = sum + i; 6 } 7 System.out.println(sum); 8 9 }
輸出結果:55
需求2:求出1到100之間的偶數和
1 public static void main(String[] args) { 2 3 int sum = 0; 4 for(int i = 1; i <= 100; i++) { 5 if(i%2 == 0){ 6 sum = sum + i; 7 } 8 } 9 System.out.println("偶數和是:"+ sum); 10 11 }
輸出:偶數和是:2550
改進需求2:
1 public static void main(String[] args) { 2 3 int sum = 0; 4 for(int i = 0; i <= 100; i=i+2) {//i在這里指的是0到100內的所有的偶數 5 sum = sum + i; 6 } 7 System.out.println("偶數和是:"+ sum); 8 9 }
輸出:
偶數和是:2550
需求3:求5的階乘
3.1 階乘的定義:n! = n*(n-1)! n的階乘是n*(n-1)的階乘
等價於:n! = n*(n-1)*(n-2)*.....*3*2*1
3.2 那么5的階乘 = 5*4*3*2*1
1 public static void main(String[] args) { 2 3 int num = 1; 4 for(int i = 1; i <= 5; i++) { 5 num = num * i; 6 } 7 System.out.println("5的階乘是:"+ num); 8 9 }
輸出:5的階乘是:120
需求3改進方案:
public static void main(String[] args) { int num = 1; for(int i = 2; i <= 5; i++) { //i從2開始,因為任何數乘1值不改變,所以沒必要做乘以1這一次循環 num = num * i; } System.out.println("5的階乘是:"+ num); }
輸出結果:5的階乘是:120
需求4:在控制台輸出所有的水仙花數
4.1 水仙花的定義:一個三位數,其各位數字的立方和等於該三位數本身
4.2 比如:153是一個水仙花數:因為:153 = 1*1*1 + 5*5*5 + 3*3*3
分析:已知一個三位數,如何獲取它的個位,十位,百位上的數字呢?
以153為例:
個位 (3) = 153 % 10 = 3
十位 (5) = 153 / 10 % 10 = 5
百位 (1) = 153 / 10 /10 % 10 = 153 / 100 % 10 = 1
千位 = x / 1000 % 10
1 public static void main(String[] args) { 2 3 for(int i = 100; i < 1000; i++) { 4 int x = i % 10; 5 int y = i / 10 % 10; 6 int z = i / 100 % 10; 7 if(i == x*x*x + y*y*y + z*z*z){ 8 System.out.println(i+","); 9 } 10 } 11 System.out.println("是水仙花數"); 12 }
輸出結果:
153,
370,
371,
407,
是水仙花數