|
输入:
【样例1】
error
【样例2】
olympic
输出:
【样例1】
Lucky Word
2
【样例2】
No Answer
0
|
输入:
【样例1】
error
【样例2】
olympic
输出:
【样例1】
Lucky Word
2
【样例2】
No Answer
0
#include <stdio.h>
void main()
{
int ch[26]={0};
char ch1;
int i,j;
int min,max;
while ((ch1=getchar())!='\n')
{ch[ch1-'a']++;}
min=100;max=0;
for (i=0;i<26;i++)
{if (ch[i]>max) max=ch[i];
if (ch[i])
if (ch[i]<min) min=ch[i];
}
j=max-min;
if (j==0) {printf("No Answer\n0");return;}
for(i=2;i<=j/2;i++){ if (j%i==0) {printf("No Answer\n0");return;}}
printf("Lucky Word\n%d",j);return;
}
pascal!::::::::
如下
program ex; var max,min,i,j,k,l:integer; word:string; m:array [1..26] of integer; function zhishu(a,b:integer):boolean;{判断一个数是否是质数的函数} var c,i:integer; begin c:=a-b; zhishu:=true; for i:=2 to trunc(sqrt(c)) do if c mod i=0 then zhishu:=false; if (c=1)or(c=0) then zhishu:=false;{排除个别特殊情况} end; begin readln(word);{读入单词} for i:=1 to length(word) do{计算每个字母出现的次数} for j:=1 to 26 do if ord(word[i])-96=j then inc(m[j]); for i:=1 to 26 do{为最大值与最小值赋初值,且不可以为0} begin max:=m[i]; min:=m[i]; if max<>0 then break; end; for i:=1 to 26 do{通过“打擂台”找出最大值与最小值} if m[i]<>0 then begin if max<m[i] then max:=m[i]; if min>m[i] then min:=m[i]; end; if zhishu(max,min) then{调用函数,然后输出} begin writeln('Lucky Word'); writeln(max-min); end else begin writeln('No Answer'); writeln(0); end; end.
//C++
//如下
#include <stdio.h> #include <math.h> int main() { int y,a[100],b[100],num,x,j,maxn,minn,i; j=0; for(i=0;i<100;i++) { a[i] = getchar(); b[i]=1; if(a[i]=='\n') { break; } j++; } for(i=0;i<=j;i++) { for(x=i+1;x<=j;x++) { if(a[i]==a[x]) { b[i]++; } } } maxn=b[0];minn=b[0]; for(i=0;i<=j;i++) { if(b[i]>maxn) maxn=b[i]; if(b[i]<minn) minn=b[i]; } num=maxn-minn; if(num==1||num==0) { y=1; } else { y =0; for(i=2;i<=sqrt(num);i++) { if(num%i==0) { y=1;break; } else y=0; } } if(y==0) printf("Lucky Word\n%d",num); if(y==1) printf("No Answer\n0"); } PS:望采纳!