2014-10-29 27 views
-7

我不知道如何調用此函數,但我可以解釋我的意思。如何使用動態長度創建int

僞代碼:

public int createNumberWithXLenght(int number, int lenght){ 
    .... 
} 

可能的輸出

500 == createNumberWithXLenght(5, 2); 
10 == createNumberWithXLenght(1, 1); 
7000 == createNumberWithXLenght(7, 3); 
+0

是第一個參數必須是一個範圍內,1-9,但第二個參數我是任何數字。到目前爲止,我通過循環長度的長度來創建一個字符串,然後從字符串中解析一個int。但是,必須有更好的解決方案嗎? – botenvouwer 2014-10-29 10:21:01

+1

第二個數字不能是任何數字,因爲您正在返回一個整數。看看BigInteger。 – 2014-10-29 10:21:48

+1

這很危險,因爲你可以很容易地超過'int'類型的上界 – 2014-10-29 10:22:11

回答

1

什麼你要找的是科學記數法它是x * 10^y形式的數字,其中x是1(包含)和10(獨佔)之間的任何數字),y是指數。

您可以使用這段代碼:

public int returnScientificInteger(int n, int power) { 
    return (int) (n * Math.pow(10, power)); 
} 
+0

優秀的作品像魅力 – botenvouwer 2014-10-29 10:24:39

1

只要你能做到這一點,如果u瞭解問題的權利

public int createNumberWithXLenght(int number, int length){ 
    return (int)(number * Math.pow(10,length)); 
} 
+0

'Math.pow(...)'返回一個'double' – 2014-10-29 10:22:21

+0

是的,這就是我的意思,謝謝。但是,這返回一個雙... – botenvouwer 2014-10-29 10:22:35

+0

剛剛更新,將其轉換爲整數。 – 2014-10-29 10:25:08

相關問題