使用一维字符数组实现对字母统计
查看原帖
使用一维字符数组实现对字母统计
582250
codingbear楼主2022/3/18 19:45
#include <bits/stdc++.h>
using namespace std;
//判断是否是质数
bool isPrimeNum(int n){
	if(n<2) {
		return false;
	}else{
		int k = sqrt(n);
		for(int i=2;i<=k;i++){
			if(n%i==0) 
				return false;
		}
		return true;
	}
}

char a[100],b[26];
int main()
{
	scanf("%s",a);
	for(int i=0;i<strlen(a);i++){
		b[a[i]-97]++;//根据字母位置进行计数
	}
	int max = 0 ,min = 0;
	for(int i=1;i<26;i++){//计算出最大值和最小值
		if(b[i]>0){
			if(max==0 && min == 0){
				min = max = b[i];
			}else{
				if(max<b[i]) max = b[i];
				if(min>b[i]) min = b[i];
			}
		}
	}
	int key = max - min;//得到关键值
	bool f = isPrimeNum(key);//判断是否为质数
    //按要求输出结果
	cout<<(f?"Lucky Word":"No Answer")<<endl;
	cout<<(f?key:0)<<endl;
    return 0;
}
 
2022/3/18 19:45
加载中...