我认为这更像是数学问题,而不是编程,但由于我正在编写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;
虽然上述工作,我认为它真的......不酷。
如果我能用数学方式做到这一点,有人能告诉我吗?
答案 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通常会使用浮点数)