P1010 笨小猴【tyvj】
/*=========================================================== P1010 笨小猴 描述 Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。 但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候 选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数, minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数, 那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 输入格式 InputFormat 输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 输出格式 OutputFormat 输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word, 那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值, 否则输出0。 输入样例1 error 输入样例2 olympic 输出样例1 Lucky Word 2 输出样例2 No Answer 0 这个题目要注意:有些字母可能没有出现 , 所以统计时可能会发现出现的最少次数是0.这个不合理,要屏蔽0这个情况。 =============================================================*/
1 #include<stdio.h> 2 #include<math.h> 3 int fun(long n); 4 int main() 5 { 6 char s[108]; 7 int num[26]={0}; 8 int i=0; 9 int maxn=-1,minn=1000; 10 int t,p; 11 scanf("%s",s); 12 while(s[i]!='\0') 13 { 14 num[s[i]-'a']++; 15 i=i+1; 16 } 17 for(i=0;i<26;i++) 18 { 19 if(num[i]>maxn) 20 { 21 maxn=num[i]; 22 } 23 if(num[i]<minn&&num[i]!=0) 24 { 25 minn=num[i]; 26 } 27 } 28 t=maxn-minn; 29 if(fun(t)==1) 30 { 31 printf("Lucky Word\n%d\n",t); 32 } 33 else printf("No Answer\n0\n"); 34 35 return 0; 36 } 37 int fun(long n)//判断n是否质数,是则返回1,否则返回0; 38 { 39 long i,t; 40 if(n<2) return 0; 41 t=sqrt(n); 42 for(i=2;i<=t;i++) 43 { 44 if(n%i==0) return 0; 45 } 46 return 1; 47 }