C++递归复习2

时间:2024-02-19 15:14:41

输出1~n之间所有的整数

#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
void f(int);
int main()
{
	cin>>n;
	f(n);
	return 0;
}
void f(int n){
	if(sum==n) return;
	sum++;
	cout<<sum<<endl;
	return f(n);
}

编程求解1+2+3+...+n

#include<bits/stdc++.h>
using namespace std;
int n,m=0,sum=0;
void f(int);
int main()
{
	cin>>n;
	f(n);
	cout<<m;
	return 0;
}
void f(int n){
	if(sum==n) return;
	sum++;
	m=m+sum;
	return f(n);
}

韩信点兵

#include<bits/stdc++.h>
using namespace std;
int n,m=0,sum=0;
int f(int);
int main()
{
	cin>>n;
	cout<<f(n);
	return 0;
}
int f(int n){
	if(n%5==1&&n%6==5&&n%7==4&&n%11==10) return n;
	return f(n);
}

小丽找数

#include<bits/stdc++.h>
using namespace std;
int n,m=0,sum=0;
int f(int,int);
int main()
{
	cin>>n;
	cout<<f(1,n);
	return 0;
}
int f(int i,int n){
	if(i>n) return 0;
	int t=i;
	while(t!=0){
		sum=sum+t%10;
		t=t/10;
	}
	if(sum%2!=0&&sum%5!=0){
		return 1+f(i+1,n);
	}
	else{
		return f(i+1,n);
	}
}

字符图形1-星号直角

#include<bits/stdc++.h>
using namespace std;
int n,m=0,sum=0;
void f(int);
int main()
{
	cin>>n;
	f(n);
	return 0;
}
void f(int n){
	if(sum==n) return;
	sum++;
	for(int i=1;i<=sum;i++){
		cout<<"*";
	}
	cout<<endl;
	return f(n);
}

数字直角(1)

#include<bits/stdc++.h>
using namespace std;
int n,m=0,sum=0;
void f(int);
int main()
{
	cin>>n;
	f(n);
	return 0;
}
void f(int n){
	if(sum==n) return;
	sum++;
	m++;
	for(int i=1;i<=sum;i++){
		cout<<m;
	}
	cout<<endl;
	return f(n);
}