这又是错在哪里?为什么后面一半都过不了了?

图片说明图片说明
/*输出一行,包括一个整数,表示1+2+3+...+n的值。 */


#include <iostream>
using namespace std;
int fun(int n)
{
    if (n == 1)
        return 1;
    else if(n>1)
        return n + fun(n - 1);
}
int main()
{
    int n;
    cin >> n;
    if(n>0)
      cout << fun(n);
    return 0;
}

你这题限制了内存大小的吧 你看看你内存是不是已经超了 , 如果是 那就证明你递归消耗的内存过多不满足要求 。

这题应该要等差数列公式去解 然后特殊项要标记出来

不知道你的题目是什么
比如说n很大会不会溢出,n=0输出多少,n<0输出多少

不过最简单的是
int foo(int n)
{
if (n < 1) return 0;
return (1+n)*n/2;
}