点击查看
http://acm.nyist.net/JudgeOnline/problem.php?pid=62
做题感想:本题主要考试字符串的有关知识
做题感想:本题主要考试字符串的有关知识
代码
方法:将字符的重复的数目储存到另一个数组中去;再求maxn和minn 就简单了;但是这种方法 有些重复了 (把每一个字符串的字符都储存 浪费)
查看代码---运行号:719875----结果:Accepted
运行时间:
2014-02-11 18:02:42 | 运行人:
shengweisong
01.
#include<stdio.h>
02.
#include<string.h>
03.
#include<math.h>
04.
char
p[100];
05.
int
b[100];
06.
int
is_prime(
int
x )
//判定是否素数
07.
{
08.
int
i;
09.
if
( x <2 )
10.
return
0;
11.
for
( i =2; i <=
sqrt
(x); i ++)
12.
if
( x%i ==0 )
13.
{
14.
//break;
15.
return
0;
16.
}
17.
return
1;
18.
}
19.
void
repeat(
char
p[],
int
b[],
int
n )/*将字符串的每一个字符重复的数目存到b[]中*/
20.
{
21.
int
i, j;
22.
for
( i =0; i <n; i ++ ){
23.
b[i] = 0;
24.
for
( j =0; j <n; j ++ )
25.
if
( p[i] == p[j] )
26.
b[i] += 1;
27.
}
28.
}
29.
int
main()
30.
{
31.
//int is_prime( int x );
32.
int
m, n, maxn, minn;
33.
scanf
(
"%d"
, &n );
34.
while
( n-- )
35.
{
36.
scanf
(
"%s"
, p );
37.
m =
strlen
(p);
38.
repeat( p, b, m);
39.
maxn = b[0];
40.
minn = b[0];
41.
for
(
int
i = 1; i <m; i++)
42.
{
43.
if
( maxn <b[i] )
44.
maxn = b[i];
45.
if
( minn >b[i] )
46.
minn = b[i];
47.
}
48.
if
( is_prime( maxn -minn ) )
49.
printf
(
"Lucky Word\n%d\n"
, maxn-minn );
50.
else
51.
printf
(
"No Answer\n0\n"
);
52.
}
53.
return
0;
54.
}