簡體   English   中英

Java IF語句(提高了算法效率)

[英]Java IF Statement (Algorithm efficiency improvement)

我使用了一種方法a,該方法計算可能的選擇數量,以使數字10從0到6成為數字問題是,當x等於50或諸如此類時, 它花費的時間太多 我只需要一些提示,我應該做些什么來使其更快。

public static int count(int x) {
    if (x < 0) {
        return 0;
    }
    if (x == 0) {
        return 1;
    }

    int result = 0;
    for (int i = 1; i <= 6; i++) {
        result += count(x - i);
    }
    return result;
}

這是斐波那契的一種變化,只不過是最后六個值的總和。

您可以使用普通循環,該循環比記憶(第一次)更快

public static long count(int x) {
    long a=0, b=0, c=0, d=0, e=0, f=1;
    while(x-- > 0) {
       long sum = a + b + c + d + e + f;
       a = b; b = c; c = d; d = e; e = f;
       f = sum;
    }
    return f;
}

如果您反復調用此方法,則最好將所有值都存儲在int范圍內(首次可能小於30),然后再檢索這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM