编写程序,求满足1+2+3+…+n<500中最大的n并求其和。
本题难点在于最后必须多加一个n才能超出500,所有最后必须减去所加的最后一个n才是所要的和。
也可以不用减啊,代码如下:
#include <iostream>
using namespace std;
int main()
{
int n = 1;
int sum = 0;
while (sum + n < 500)
{
sum += n;
n++;
}
cout << "n=" << n << ",sum=" << sum << endl;
return 0;
}
运行结果:

1+2+3+...+31 = 496
如有帮助,望采纳,谢谢。

给你写一个

#include <iostream>>
using namespace std;
int main(int argc, char* argv[]) {
int sum = 0;
int i = 0;
while (sum < 500) //跳出循环时,找到大小500的最小n
{
sum += i;
i++;
}
sum = sum - i; //减去最后一个数
i--;
cout << "你要找的n为:" << i << " 和为:" << sum << endl;
return 0;
}