-

-

- 首先写了个最简单的素数判断
-
bool isp(int n){ if(n==1||n==0){ return false; } for(int i=2;i<n;i++){ if(n%i==0) return false; //判断是否为素数 } return true; } - 重点在计数每个字母出现的次数(数组计数)
-
for(int i=0;a[i];i++){ n[a[i]-'a']++; //n[]数组代表26个字母出现的次数,每出现一次就+1 } - 最后就是比较 找出最大和最小,n[ j ] ! =0
-
for(int j=0;j<26;j++){ if(n[j]>max) max=n[j]; //找出出现次数最多和最少的 else if(n[j]<min&&n[j]!=0) min=n[j]; } - 下面就是完整代码了
-
#include <cstdio> #include <cstring> #include <iostream> using namespace std; bool isp(int n){ if(n==1||n==0){ return false; } for(int i=2;i<n;i++){ if(n%i==0) return false; //判断是否为素数 } return true; } int main(){ char a[10000]; int max=0,min=9999; int n[100]={0}; gets(a); for(int i=0;a[i];i++){ n[a[i]-'a']++; //n[]数组代表26个字母出现的次数,每出现一次就+1 } for(int j=0;j<26;j++){ if(n[j]>max) max=n[j]; //找出出现次数最多和最少的 else if(n[j]<min&&n[j]!=0) min=n[j]; } if(isp(max-min)){ //相减判断 printf("Lucky Word\n"); printf("%d",max-min); } else{ printf("No Answer\n"); printf("0"); } return 0; } - 输入的时候
- char a[10000]; 或者 string a;
- gets(a); cin>>a; 都行
- 不会用getline,
别管了,我是废物
C语言练习之笨小猴
于 2022-11-26 00:03:20 首次发布
本文介绍了一个结合素数判断与字符计数的程序,通过输入字符串统计字母出现次数,并找出其中最大和最小频率的字母,判断差值是否为素数,从而确定是否为'幸运单词'
1593

被折叠的 条评论
为什么被折叠?



