##<center>Java實驗報告(一)<center> ##實驗過程 ###1. 打印輸出全部的「水仙花數」,所謂「水仙花數」是指一個3位數,其中各位數字立方和等於該數自己。例如,153是一個「水仙花數」。 實驗源碼:java
import java.lang.Math; class Narcissus{ public static void main(String[] args){ int num1,num2,num3; int count = 0; for(int i = 100;i < 1000;i++){ num1 = i / 100; num2 = (i % 100) / 10; num3 = i % 10; if(Math.pow(num1,3)+Math.pow(num2,3)+Math.pow(num3,3) == i){ count = 1; System.out.println(i+"是水仙花數"); } } if(count == 0){ System.out.print("No"); } System.out.println(); } }
實驗結果: 編程
###2. 編寫Java程序,求13-23+33-43+…+973-983+993-1003的值。 實驗源碼:3d
class Staggered{ public static void main(String[] args){ int num = 13; int flag = 1; int sum = 0; for(int i = 0;i <= 99;i++){ sum += flag * num; flag = -flag; num += 10; } System.out.println(sum); } }
實驗結果: code
###3. 編程求1!+2!+3!+…+20!。 實驗源碼:blog
class Factorial{ public static void main(String[] args){ long result = 0; for(int i = 1;i <= 20;i++){ long product = 1; for(int j = 1;j <= i;j++){ product *= j; } result += product; } System.out.println("1!+2!+3!+…+20! = "+result); } }
實驗結果: ci
###4. 編寫Java程序,計算8+88+888+…前10項之和。 實驗源碼:源碼
class Summation{ public static void main(String[] args){ String num = ""; long sum = 0; for(int i = 1;i <= 10;i++){//求前N項的和 num +='8'; sum += Long.parseLong(num); } System.out.println(sum); } }
實驗結果: io
###5. 一個數若是剛好等於它的因子之和,這個數就稱爲完數。編寫程序輸出1000之內的全部完數。 實驗源碼:for循環
class Perfect{ public static void main(String[] args){ for(int i = 1;i < 1000;i++){ if(i == 1){ continue; } int sum = 1; for(int j = 2;j < i;j++){ if(i % j == 0){ sum += j; } } if(sum == i){ System.out.println(i + "是一個完數"); } } } }
實驗結果: class
###6. 編寫應用程序,輸出知足1+2+3+…+n<8888的最大正整數。 實驗源碼:
class Simple{ public static void main(String[] args){ int sum = 0; int i = 1; while(sum < 8888){ sum += i; i++; } System.out.println("知足1+2+3+…+n<8888的最大正整數爲"+i); } }
實驗結果:
###7. 使用for循環打印下面的圖形。
實驗源碼:
import java.util.Scanner; class Triangle { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt();// 三角形的層數 String op = sc.next();// 三角形的符號 for (int i = 1; i <= N; i++) { int k = 1; for (int j = 1; j <= 2 * N; j++) { if (j == N - i + k) { System.out.print(op); k++; } if (j == N) { System.out.println(); break; } else { System.out.print(" "); } } } } }
實驗結果:
##總結: 題目較爲基礎,比較簡單