c++ 为什么我的递归代码以递增的顺序打印no对大于10^5的输入不起作用?

hwamh0ep  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(84)

这是我密码-

#include<bits/stdc++.h>
#define ll long long
using namespace std;

void printno(ll n){
    if(n==1){
        cout<<1<<endl;
        return;
    }
    printno(n-1);
    cout<<n<<"\t";
}
int main(){
 ll n;
 cin>>n;
 printno(n);
return 0;
}

我正在使用vs代码.我的代码不工作的输入大于10^5.什么是这问题在我的代码?和我怎样才能得到输出的输入大于10^7.

bbmckpt7

bbmckpt71#

你可能在你的平台上耗尽了堆栈空间,因为你试图同时在堆栈上进行超过100,000次递归调用。我们正在访问的网站是以你的程序所发生的事情命名的。我不确定你的最终目标是什么,但是试着想出一个不需要递归或者不需要递归这么多次的方法(例如,使用一个简单的for循环)。

相关问题