为何用递归就不对?
查看原帖
为何用递归就不对?
1324147
nanoko4楼主2024/4/25 09:44

同样的输出效果,我用循环就全AC,用递归反而就不行了。求指教。谢谢

/*
区间内的真素数
*/
#include<bits/stdc++.h>
using namespace std;
const int MAX=6;
int x[10],res[10000];
bool is_prime(int n){
	if(n==1)return false;
	for(int i=2;i*i<=n;i++){
		if(n%i==0)return false;
	}
	return true;
}
int fan_xu(int n,int i=0,int N=0){
	if(n!=0){
		x[i]=n%10;
		n/=10;
		N+=x[i];
		N*=10;
		fan_xu(n,++i,N);
	}else{
		return N/10;
	}
}

int main(){
	int m,n,j=0;
	cin>>m>>n;
	if(m>n)swap(m,n);
	for(int i=m;i<=n;i++){
		if(is_prime(i) && is_prime(fan_xu(i))){
			res[j]=i;
			j++;
		}
	}
	if(j>0){
		for(int k=0;k<j;k++){
			if(k==j-1){
				cout<<res[k]<<endl;
			}else{
				cout<<res[k]<<",";
			}
		}	
	}else{
		cout<<"No"<<endl;
	}
	
	return 0;
}
2024/4/25 09:44
加载中...