Javascript - 尝试计算从1到用户输入的数字之和

时间:2015-02-17 12:34:46

标签: javascript

我对javascript很新,而且知识有限。我刚刚掌握了hello world的概念。目前,我的代码将FirstNumber和SecondNumber一起添加到结果中。我希望它能做到以下几点:

我正在尝试创建一个程序,其中FirstNumber预定义为1,SecondNumber由用户输入完成。 javascript应计算从1到应输入的数字之和。例如,如果用户输入5,程序应该计算从1到5(1 + 2 + 3 + 4 + 5)的总和,这将是15.我被告知可能使用数组,虽然我&#m; m不确定。

这是我的HTML代码:

<!DOCTYPE html>
<html>
<head>
<title>Sum of numbers</title>
<script type="text/javascript">
function sum()
{
    var FirstNumber = 1;
    var SecondNumber = document.getElementById('txtSecondNumber').value;
    alert(parseInt(FirstNumber) + parseInt(SecondNumber));
}
</script>
</head>
<body>
Please enter a number:<input id="txtSecondNumber" type="text" />
<input id="btnAdd" type="button" value="Add" onclick="sum();"/>
</body>
</html>

有人可以帮忙吗?

谢谢:)

8 个答案:

答案 0 :(得分:1)

您正在寻找的是for loop

for (var i = FirstNumber ;i < SecondNumber ; i++){
    // do what ever you want in here
    // like adding i to the total
}

对于添加序号的简单情况,您根本不需要循环:

1+2+3+4+5+...+n = n(n+1)/2

答案 1 :(得分:1)

来自http://en.wikipedia.org/wiki/1_%2B_2_%2B_3_%2B_4_%2B_%E2%8B%AF的公式

function sum() {
    var num = document.getElementById('txtSecondNumber').value;
    var sum = (num*(num+1))/2;
    alert(sum);
}

答案 2 :(得分:1)

虽然数组可能会帮助您满足您的需求,但您正在寻找的重要位是for循环。你没有表明你的编程背景或者JavaScript是你的第一语言,但for循环是一个基本的编程结构,它有一个起始条件,一个结束条件,一种改变事物的方法(所以在开始和结束之间有一些变化),以及在你计算时要做的事情。

JavaScript中的简单for循环如下所示:

for( var i=0; i<10; i++ ){
  alert( i );
}

这将为0到9之间的每个数字弹出警报。

在您的情况下,您希望将开始条件设置为第一个数字,结束条件以检查您是否已完成最后一个数字(这两个数字都可以是变量 - 而不仅仅是常数,因为我和#39 ;已说明),并增加数字。在循环内部,您将要将数字添加到参考计数器。

答案 3 :(得分:0)

function sum()
{
var SecondNumber = parseInt(document.getElementById('txtSecondNumber').value);
var result=(SecondNumber *(SecondNumber +1))/2;
alert(result);
}

总和为1到n的公式是n *(n + 1)/ 2

根据您的准则

<!DOCTYPE html>
<html>
<head>
<title>Sum of numbers</title>
<script type="text/javascript">
function sum()
{
var SecondNumber = parseInt(document.getElementById('txtSecondNumber').value);
var result=(secondnumber*(secondnumber+1))/2;
alert(result);
}
</script>
</head>
<body>
Please enter a number:<input id="txtSecondNumber" type="text" />
<input id="btnAdd" type="button" value="Add" onclick="sum();"/>
</body>
</html>

<强> DEMO

答案 4 :(得分:0)

下面

function sum(n) {
  var res = 0, total = 0;
  while ((n--)>0) total += ++res;
  return total;
}

答案 5 :(得分:0)

您可以使用for loop轻松计算从1到任意数字的总和。如果您只从1开始求和,则不需要FirstNumber变量。否则,您可以将i = 1更改为i = FirstNumber

var sum;
for (i = 1; i < SecondNumber+1; i++) { 
    sum += i;
}

答案 6 :(得分:0)

试试这个,你想循环遍历第一个和第二个数字之间的所有数字并将它们添加到结果中

var submit = document.getElementById('submit');
var input = document.getElementById('txtSecondNumber');

function sum() {
    var FirstNumber = 1;
    var SecondNumber = input.value;

    var result = 0;

    for (var i = FirstNumber; i <= SecondNumber; i++) {
      result += i;  
    }

    alert(result);
}

submit.addEventListener('click', sum);

jsFiddle - http://jsfiddle.net/et8t3bgd/

答案 7 :(得分:0)

使用递归程序......

var num=Number(prompt("Enter a number"));
var sum=0;
for(var i=num;i!=0;i--){
      sum+=i;
      }
      console.log(sum)
 //print sum