1 条题解
-
0
C :
#include<stdio.h> #include<string.h> #include<math.h> int judge(int a) { if(a==1||a==0) return 0; for(int i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; } main() { int num[26],i,max,min,n; char ch[128]; scanf("%d",&n); while(n--) { memset(num,0,sizeof(num)); scanf("%s",&ch); for(i=0;i<strlen(ch);i++) num[ch[i]-97]++; for(i=0,max=0,min=128;i<26;i++) { if(num[i]>max) max=num[i]; if(num[i]<min&&num[i]!=0) min=num[i]; } if(strlen(ch)==max) min=0; if(judge(max-min)) { puts("Lucky Word"); printf("%d\n",max-min); } else { puts("No Answer\n0"); } } }
C++ :
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int isPrime(int a) { int i; if(a == 0 ||a ==1)return 0; if(a == 2)return 1; for(i = 2;i <= sqrt( a );i++) { if(a % i == 0)return 0; } return 1; } int letter[30]; char word[110]; int main() { int n ,i , maxn , minn ,temp; //freopen("1.in", "r", stdin); //freopen("1.out", "w", stdout); scanf("%d",&n); while(n--) { maxn = -1; minn = 101; memset(letter , 0 , sizeof(letter)); scanf("%s",word); for(i=0 ; i < strlen(word);i++) { letter[word[i]-'a']++; } for(i = 0 ; i <30 ; i++ ) { if(letter[i] >= maxn) maxn = letter[i]; if(letter[i] <= minn && letter[i]!=0) minn = letter[i]; } temp = isPrime(maxn - minn); if(temp == 1) { printf("Lucky Word\n"); printf("%d\n",maxn - minn); } else { printf("No Answer\n"); printf("0\n"); } } }
- 1
信息
- ID
- 812
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者