C ++加1 + 2 + 3 + ... + N.

时间:2015-02-27 16:11:25

标签: c++ loops

我的C ++书中出现了问题。这不是必须的,但我想让它发挥作用:

  

数字总和

     

编写一个程序,询问用户是否为正整数值,并使用循环来验证输入。*程序应该使用第二个循环来计算从1到输入数字的所有整数之和。例如,如果用户输入50,则循环将找到1,2,3,4 ......之和。

*我不是要求第一个循环,只是第二个循环。但如果您想编码,请继续。

编写一个减少数字直到达到1的程序非常简单:

#include <iostream>
using namespace std;

int main()
{
    int number;

    cout << "Enter a number: ";

    cin >> number;

    while(number >= 1)
    {
        cout << number << " ";
        number--;
    }

    system("pause"); //I usually go with cin.get() but my current 
                     //compiler doesn't handle it
    return 0;
}

但是如果要在数字中添加“数字-1”,则数字会变大,现在数字-1将从此增加。例如,7 + 6 = 13,13 + 12 = 25,25 + 24 = 49,等等。这是我试图适应工作的程序:

#include <iostream>
using namespace std;

int main()
{
    int number;

    cout << "Enter a number: ";

    cin >> number;

    for(count = 1; count <= number; count++)
    {
        number += number - 1;
    }

    cout << "The sum is" << number << endl;

    system("pause"); //
    return 0;
}

遗憾的是,这是一个无限循环。

有关如何调整此程序以满足问题的任何想法?或链接到之前已经完成的源代码等。


编辑:

所以这可能完全是另一个问题,但我的代码没有编译:

#include <iostream>
using namespace std;

int main()
{
    int number, sum = 0;

    cout << "Enter a number: ";

    cin >> number;

    for(count = 1; count <= number; count++)
    {    
        number--;
        sum += number; 
    }

    cout << "The sum is" << sum << endl;

    system("pause"); //
    return 0;
}

enter image description here


编辑2:我刚刚摆脱了for循环并将其更改为“while(number&gt; = 1)”

2 个答案:

答案 0 :(得分:2)

这样的东西?

int sum = number;
while (number-- > 0) {
    sum += number;
} 

答案 1 :(得分:0)

我找到一个for循环整理器,所以我将发布一个变化的例子。

int n = Max Number
int sum = 0;
for(int i = 1; i <= n; i++) {
    sum += i;
} 

对于你的编译问题,除非我读错了,你不应该减少数字;它定义了最大数量。每个循环都是递增计数,递减数字,然后比较它们。我无法想象会给你带来什么有意义的东西。删除number--;,它应该有效。