我应该使用什么公式来确定基于给定输入的值?

时间:2012-02-13 03:13:34

标签: javascript math

我认为这更像是数学问题,而不是编程,但由于我正在编写Javascript,希望它是可以原谅的。

我收到用户输入,1,2,3或4。

if 1, then output is 9

if 2, then output is 99

if 3, then output is 999

所以基本上输入代表数字。

我承认我真的很厌烦数学。试图将这件事打破某种公式 像9 * 10 + 9等希望我找到某种数学方法解决这个问题,但我的大脑腐败了。

我可以通过字符串连接方式来做到这一点:

var userInput = 3;
var output = "";

for(var i=0; i<userInput; i++) {
    userInput = userInput + "9";
}

console.log(userInput); //now this should have string "999"

return parseInt(userInput); //return as integer 999;

虽然上述工作,我认为它真的......不酷。

如果我能用数学方式做到这一点,有人能告诉我吗?

3 个答案:

答案 0 :(得分:4)

output = Math.pow(10,userInput)-1;

这可行。或者:

output = new Array(userInput+1).join("9");

虽然这可能效率较低。

答案 1 :(得分:1)

Math.pow应该这样做:

Math.pow(10, userInput) - 1;

答案 2 :(得分:1)

试试这个:

function nines(n) {
    var s = 0, i;
    for (i = 0; i < n; i++) {
        s = s * 10 + 9;
    }
    return s;
}

当然,如果你想要一个数字版本,你将受到一个数字的最大大小的限制(如果我没记错的话,JavaScript通常会使用浮点数)