请各位看一下,为什么50分
查看原帖
请各位看一下,为什么50分
369265
水滴探测器楼主2020/10/8 11:25

这是代码

#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int maxm[26],minm[26];
bool isprime(int a){
	for ( int i=2; i*i<=a; i++ ){
		    if ( a%i==0 ){
			    return false;
		    }
	    }
	return true;
}
int max(char a[],int b[26]){
	int n=strlen(a),maxn=-1;
	for ( int i=0; i<n; i++ ){
		maxm[a[i]-96]++;
	}
	for ( int i=1; i<=26; i++ ){
		if ( b[i]>maxn ){
			maxn=b[i];
		}
	}
	return maxn;
}
int min(char a[],int b[26]){
	int n=strlen(a),minn=999;
	for ( int i=0; i<n; i++ ){
		minm[a[i]-96]++;
	}
	for ( int i=1; i<=26; i++ ){
		if ( b[i]!=0&&b[i]<minn ){
			minn=b[i];
		}
	}
	return minn;
}
int main(){
	char a[100];
	cin >> a;
	int n=max(a,maxm),m=min(a,minm),o=n-m;
	if ( isprime(o) ){
		cout << "Lucky Word" << endl << o;
	} else {
		cout << "No Answer" << endl << 0;
	}
	return 0;
}
max是出现次数最多的次数,min是出现次数最少的次数,isprime是判断质数
2020/10/8 11:25
加载中...