第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用遞歸函數(shù)輸出斐波那契模式中具有交替負(fù)數(shù)的第 N 個(gè)數(shù)字

使用遞歸函數(shù)輸出斐波那契模式中具有交替負(fù)數(shù)的第 N 個(gè)數(shù)字

四季花海 2023-10-13 14:47:08
我正在嘗試使用 Java 解決遞歸函數(shù)練習(xí)問(wèn)題,但它讓我完全難住了:Given the small integer n (0 <= n <= 40) you need to find the n-th number of the alternating Fibonacci sequence.The sequence starts with 0, 1, -1, 2, -3, 5, -8, 13, -21, ...So, fib(0) = 0, fib(1) = 1 => fib(2) = -1.我可以實(shí)現(xiàn)查找第 N 個(gè)斐波那契數(shù)的函數(shù),但是具體的問(wèn)題要求卻讓我失敗了。每當(dāng)我嘗試實(shí)現(xiàn)某種負(fù)數(shù)時(shí),它最終都會(huì)搞砸算術(shù)而不是改變輸出的最終數(shù)字。我的思緒不斷回到創(chuàng)建某種僅在最頂層框架上觸發(fā)的條件,但我不認(rèn)為這是可以實(shí)現(xiàn)的。有誰(shuí)知道如何解決這個(gè)問(wèn)題?這是我的基本函數(shù),沒(méi)有實(shí)現(xiàn)任何類型的負(fù)數(shù)要求:    public static long fib(long n){        if (n == 0){            return 0;        } else if (n == 1){            return 1;        } else if (n == 2){            return 1;        } else {            return fib(n-2)+fib(n-1);        }    }
查看完整描述

4 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以簡(jiǎn)單地使用另一個(gè)函數(shù)來(lái)處理負(fù)面要求:


public static int AlternatingFiboonacci(int n){

    if(n > 0 && n % 2 == 0) return -fib(n);     //if n is even and greater than 0

    else return fib(n);

}

如果您需要一個(gè)單一的工作功能,這應(yīng)該可以完成工作


public static int fib(int n){

    if(n < 2) return n;     

    if(n % 2 == 0) return -1 * (fib(n - 1) - fib(n - 2));

    else return (-1 * fib(n - 1)) + fib(n - 2);

}

這個(gè)函數(shù)的作用是:

  • 當(dāng)n為偶數(shù)時(shí),返回fib(n - 1)(為奇數(shù),因此為正)- fib(n - 2)(為偶數(shù),因此為負(fù))。減法將是一個(gè)正值,乘以 -1。

  • 當(dāng)n為奇數(shù)時(shí),返回 -1 * fib(n - 1)(為偶數(shù),因此為負(fù))+ fib(n - 2)(為奇數(shù),因此為正)。


查看完整回答
反對(duì) 回復(fù) 2023-10-13
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

也許現(xiàn)在把這個(gè)作為答案還為時(shí)不晚:


    public static long fib(long n){

        if (n <= 1){

            return n;

        } else {

            return fib(n-2) - fib(n-1);

        }

    }



查看完整回答
反對(duì) 回復(fù) 2023-10-13
?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以先獲取您的號(hào)碼:


public static long fib(long n) {

    if ((n == 0) || (n == 1))

        return n;

    else

        return fib(n - 1) + fib(n - 2);

}

然后根據(jù)需要添加減號(hào):


public long result(long n){

    long fib = fib(n);

    if(n>0 && n%2==0) return -fib;

    else return fib;

}


查看完整回答
反對(duì) 回復(fù) 2023-10-13
?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊

想想這個(gè)公式。


您想要正常的斐波那契數(shù)列,但在偶數(shù)位置上它們?yōu)樨?fù)數(shù)。假設(shè)您的方法將被命名為 altFib。如果您應(yīng)用Math.abs( altFib(n) ),您將獲得第 n 個(gè)斐波那契數(shù)的實(shí)際值,因此很明顯,下面的代碼也會(huì)產(chǎn)生第 n 個(gè)斐波那契數(shù):


int fib_n = Math.abs( altFib(n-1) ) + Math.abs( altFib( n-2 ) ) 

然后你希望它在偶數(shù)位置上為負(fù),所以只需使用簡(jiǎn)單的 if else :


if( n % 2 == 0 )

    return -fib_n

else

    return fib_n


查看完整回答
反對(duì) 回復(fù) 2023-10-13
  • 4 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)