Java實驗報告(一)
實驗過程
1. 打印輸出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其中各位數字立方和等於該數本身。例如,153是一個“水仙花數”。
實驗源碼:
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的值。
實驗源碼:
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);
}
}
實驗結果:

3. 編程求1!+2!+3!+…+20!。
實驗源碼:
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);
}
}
實驗結果:

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);
}
}
實驗結果:

5. 一個數如果恰好等於它的因子之和,這個數就稱為完數。編寫程序輸出1000以內的所有完數。
實驗源碼:
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 + "是一個完數");
}
}
}
}
實驗結果:

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(" ");
}
}
}
}
}
實驗結果:

總結:
題目較為基礎,比較簡單
