Peggy 發問時間: 電腦與網際網路程式設計 · 1 0 年前

請問java 程式碼

請問以下兩個程式碼裡面的意思~ 卸卸!!!

public class test1 {

// 在此撰寫一個 compare 方法

public static int [] compare(int[] a, int[] b){

int [] c = new int[a.length];

for (int i = 0; i < a.length; i++) {

c[i] = a[i] > b[i] ? a[i] : b[i];

}

return c;

}

public static void main(String[] args) {

int[] array1 = new int[] {10,25,40,35};

int[] array2 = new int[] {8 ,35,20,50};

int[] array3 = new int[array1.length];

array3 = compare(array1, array2);

for (int i = 0; i < array3.length; i++)

System.out.print(array3[i]+ " ");

System.out.println();

}

}

import java.io.*;

public class test2 {

static double factorial(int x) {

if(x == 1) {

return 1.0/2;

}

else { // 呼叫自己計算(x-1)!

return factorial(x - 1)+1.0/(x*x+1);

}

}

public static void main(String[] args)throws IOException {

// TODO Auto-generated method stub

System.out.print("要計算前幾項的數字: ");

BufferedReader br = new

BufferedReader(new InputStreamReader(System.in));

int x = java.lang.Integer.parseInt(br.readLine());

System.out.println("前" +x+"項的總合為:" + factorial(x));

}

}

已更新項目:

謝謝 路.里美亞克 的回答

但是我想問的是""程式碼裡面的意思""

為什麼程式碼要這樣打?!

那些程式碼是代表什麼意思呢?!

卸卸! :D

3 個解答

評分
  • 1 0 年前
    最佳解答

    1.

    兩個陣列中相同位置較大的值挑出

    以題目內的預設值

    int[] array1 = new int[] {10,25,40,35};

    int[] array2 = new int[] {8 ,35,20,50};

    輸出陣列應該是 10 35 40 50

    2.遞回計算

    f (1) = 5

    f (n) = f (n-1) + 1.0 / (x * x + 1 )

    2010-04-25 08:43:16 補充:

    1.

    public static int [] compare(int[] a, int[] b){ //挑選用的副函式

    int [] c = new int[a.length]; //暫存陣列 大小與a相同

    for (int i = 0; i < a.length; i++) {

    c[i] = a[i] > b[i] ? a[i] : b[i]; // 當a[i]>b[i]時 c[i]=a[i] 否則 c[i]=b[i]

    }

    return c; //傳回c陣列

    }

    2010-04-25 08:45:35 補充:

    2.

    static double factorial(int x) {

    if(x == 1) {

    return 1.0/2; //當傳入的x==1時 回傳1.0/2

    }

    else { // 呼叫自己計算(x-1)!

    return factorial(x - 1)+1.0/(x*x+1); //當x>1時 遞回呼叫factorial(x-1) + 1.0 / (x*x+1)

    }

    }

    參考資料: 自己
  • 吉他
    Lv 5
    1 0 年前

    第一個程式,只是把a和b兩個數字陣列裡的值,從第0個~n個取出來比對哪個大,數字大的放到c陣列而已。

    第二題

    路.里美亞克回答的怎麼會說f (1) = 5???

    f (1) = 0.5才對吧。怎麼會是5?

    第二題只是用遞迴的技巧把多項式數學式寫出來,通常像這裡要一直重複做相同運算的,都可以用遞迴,但遞迴有一個缺點,遞迴是用空間換時間的做法,所以要是寫的不好,會造成記憶體滿出來,程式死當,優點就是程式變少,遞迴的原理是把目前計算的值暫存在記憶體,然後再call相同method計算下次的值,一直到某個if成立,才開始return把前面存在記憶體的值從最裡面加到最外面。

  • 匿名使用者
    1 0 年前

    不就是計算總和而已嗎=.="

還有問題?馬上發問,尋求解答。