C++求大数,程序停止?

C++求大数,程序停止?,c++,recursion,sum,runtime,iteration,C++,Recursion,Sum,Runtime,Iteration,我运行这两个函数,对前N个整数进行相同的计算,然后比较每个整数的运行时间。这个程序可以很好地处理小的输入,但问题是当我输入1000000这样的大数字时,它会计算第一个方法iterativeSum,然后一旦到达递归Sum,它就停止工作 我不确定,但你认为这可能是因为库特 #include <stdio.h> #include <iostream> #include <ctime> #include <cstdlib> using namespace

我运行这两个函数,对前N个整数进行相同的计算,然后比较每个整数的运行时间。这个程序可以很好地处理小的输入,但问题是当我输入1000000这样的大数字时,它会计算第一个方法iterativeSum,然后一旦到达递归Sum,它就停止工作

我不确定,但你认为这可能是因为库特

#include <stdio.h>
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

void iterativeSum(int);
int RecursiveSum(int);


int main()
{
long long posInt;
std::cout << "Enter a positive integer: ";
std::cin >> posInt;

int start_s=clock();
iterativeSum(posInt);
int stop_s=clock();

int start_s1=clock();
cout << "\nThe recursive algorithm to sum the first N integers of "<< posInt << " is: "<< RecursiveSum(posInt) << endl;
int stop_s1=clock();

cout << "time: " << (stop_s-start_s)/double(CLOCKS_PER_SEC)/1000 << endl;

cout << "time: " << (stop_s1-start_s1)/double(CLOCKS_PER_SEC)/1000 << endl;


return 0;
}

void iterativeSum(int posInt)
{
//positive Integer >=0
int sum = 0;


//loop through and get only postive integers and sum them up.
// postcondion met at i = 0

for(int i = 0; i <= posInt;i++)
    {
        sum +=i;
    }
    //output the positive integers to the screen
    std::cout <<"\nThe iterative algorithm to sum the first N integers of " <<posInt <<" is: " << sum << "\n";
}


int RecursiveSum(int n)
{
 if(n == 1) // base case
 {
   return 1;
 }
 else
  {
    return n + RecursiveSum(n - 1);  //This is n + (n - 1) + (n - 2) ....
  }
}
您可能需要一个类似的库,以避免。你应该害怕


通常限制在例如兆字节。请参见

是否收到错误消息?或者程序的运行时间真的很长?顺便说一句,你应该在编译器中添加C++标签来解决这个问题,运行时间太长,所以Windows会在程序进入ReSuviSUM方法时阻止程序运行吗?嗯,我不知道如何添加C++标签,抱歉:DNO问题,我现在添加了,但是你必须接受编辑。