解法一:使用公共变量s,递归循环1~n加到s上 #include<bits/stdc++.h> using namespace std; int n,s; void fun(int i){ if(i<=n){ s=s+i; fun(i+1); } } int main(){ cin>>n; fun(1); cout<<s; return 0; } 解法二:通过层层累加,然后将和层层返回,求和 #include<bits/stdc++.h> using namespace std; int n; int fun(int i){ if(i<=n){ return i+fun(i+1); } else return 0; } int main(){ cin>>n; cout<<fun(1); return 0; } 解法三:通过输入参数,层层累加求和 #include<bits/stdc++.h> using namespace std; int n; int fun(int i,int s){ if(i<=n){ return fun(i+1,s+i); } else return s; } int main(){ cin>>n; cout<<fun(1,0); return 0; }