我觉得用桶排序是比较正规的方法,也是刚学,要多练练,其他常规方法我再看下,后续更新
#include<stdio.h>
#include<math.h>
#include<string.h>
int isPrimeNum(int num) //判断质数的函数
{
for (int i = 2; i <= sqrt(num); i++)
{
if (!(num % i))
return 0;
}
if (num != 1 && num != 0) //注意哦,1和0都不是质数,这基本常识我都忘光了...
return 1;
else
return 0;
}
int main()
{
//用桶的原理来统计,我也是自学的,上次看到一位大佬有用的,就去查了下用法
int count[26] = { 0 }, max = 0, i = 0 ,min =0 ;
char ch = 0;
while ((ch = getchar()) != '\n')
{
if (isupper(ch)) //调用isupper函数判断大写
ch = ch + 32;
count[ch - 'a']++;
min = ch - 'a';
}
for (i = 0; i < 26; i++)
{
max = count[max] > count[i] ? max : i ; //count[max]是次数,max是具体的字母
if (count[i] > 0)
min = count[min] < count[i] ? min : i;
}
if (isPrimeNum(count[max] - count[min]))
printf("Lucky Word\n%d\n", count[max] - count[min]);
else
printf("No Answer\n0\n");
return 0;
}

京公网安备 11010502036488号