簡體   English   中英

如何將長 function 轉換為 Biginteger 轉換為字符串?

[英]How can I convert a long function into a Biginteger into a string?

我正在嘗試將我的long變量更改為BigInteger ,因為我將斐波那契數列的數字存儲在其中,然后最終將它們變成一個字符串。 這是我的原始代碼。

public class Fib {
    public static void main(String args[])
    {
        long n1=0,n2=1,n3,i,count = 100;
        System.out.print(n1+" "+n2);//printing 0 and 1

        for(i=2;i<count;++i)//loop starts from 2 because 0 and 1 are already printed
             {
                n3=n1+n2;
                System.out.print(" "+n3);
                n1=n2;
                n2=n3;
            }

        }} :

並且我嘗試將其轉換為 BigInteger 和之后的字符串,就像這樣......

public class Fib {
    public static void main(String args[])
    {
        long n1=0,n2=1,n3,i,count = 100;
        BigInteger n1,n2,n3,i,count = BigInteger.valueOf(n1,n2,n3,i,count)
        System.out.print(n1+" "+n2);//printing 0 and 1

        for(i=2;i<count;++i)//loop starts from 2 because 0 and 1 are already printed
             {
                String n3= n1+n2;
                System.out.print(" "+n3);
                n1=n2;
                n2=n3;
            }

        }}

但是,會發生錯誤。 我試圖閱讀將長變量轉換為 BigIntegers 和 BigIntegers 為字符串的語法,我知道我所做的是錯誤的。

但是,我似乎無法找出正確的方法來實現我想做的事情,這就是我來 StackOverflow 尋求幫助的原因。

如果有人可以幫助我,將不勝感激。

java 規范嚴格定義了哪些運算符可以應用於什么以及它的含義。 具體來說,所有常用的數學運算符( +-等)都只適用於原始數字,一個例外是+它也可以出現在字符串和其他任何東西之間,但這是完全不同的事情(字符串連接而不是數字加法)。

它們根本不能應用於 BigInteger - 規范根本沒有列出這意味着什么,並且 java 沒有運算符重載。

直接替換是混淆地命名為addsubtractmultiplydivide的方法。 所以,

BigInteger a = BigInteger.ONE;
BigInteger b = BigInteger.ONE;
BigInteger c = a + b; // wrong
BigInteger c = a.add(b); // correct

更好的名稱應該是plusminustimesdividedBy 從某種意義上說,如果我在黑板上寫a = b + c並請你大聲讀出來,你會說:“a 等於 b 加 c”。 不是“a 等於 b 加 c”。 但是,它就是這樣 - 請記住, a.add(b)將計算 a 和 b 的總和並返回一個全新的BigInteger和結果。 不會b添加到a (BigInteger 是不可變的;不可能通過調用其上的方法或任何其他hackery 之外的方式來更改其值)。

暫無
暫無

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

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