[NOIP2008 提高组] 笨小猴(洛谷题号P1125)

Tomorrowland 2024-07-23 16:39:00 阅读 95

[NOIP2008 提高组] 笨小猴

题目描述

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个 Lucky Word,这样的单词很可能就是正确的答案。

输入格式

一个单词,其中只可能出现小写字母,并且长度小于100。

输出格式

共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出 <code>Lucky Word,否则输出 No Answer

第二行是一个整数,如果输入单词是 Lucky Word,输出maxn-minn的值,否则输出 0。

样例 #1

样例输入 #1

error

样例输出 #1

Lucky Word

2

样例 #2

样例输入 #2

olympic

样例输出 #2

No Answer

0

提示

【输入输出样例 1 解释】

单词 error 中出现最多的字母 r 出现了 3 次,出现次数最少的字母出现了 1 次,3-1=2,2是质数。

【输入输出样例 2 解释】

单词 olympic 中出现最多的字母 出现了 1 次,出现次数最少的字母出现了 1 次,1-1=0,0 不是质数。

(本处原题面错误已经修正)

noip2008 提高第一题

一道有关于字符串的题目--

这道题我们大致可以分为以下几个步骤:

1.输入一个字符串,并遍历这个字符串,设立Numbers数组(我们暂且可以将Numbes数组初始化为0),存储这个字符串中出现字符的个数.

2.遍历这个数组,并找出这个数组中最小的,并且字符串中出现过的字符的次数的最小值minn和最大值maxn(最小值的判断有一个坑——那就是我们不能仅仅找出数组中的最小值,同时这个最小值必须得>0,

表示这个字符在输入的字符串中出现过)

3.定义一个函数,判断一个整数是否是质数

4.找出最小值和最大值以后,定义diff变量=maxn-minn,判断这个数是否是质数,如果不是质数,第一行输出"No Answer",第二行输出0即可。

如果这个数是质数,则第一行输出"Lucky Word",第二行输出diff这个变量的值就可以了。

具体可以编译运行的代码如下:

#include <iostream>

#include <cmath>

using namespace std;

// 判断一个数是否是质数

bool isPrime(int n) {

if (n <= 1) {

return false;

}

for (int i = 2; i <= sqrt(n); i++) {

if (n % i == 0) {

return false;

}

}

return true;

}

int main() {

//输入字符串

string s;

cin >> s;

//利用Numbers数组,来判断这个字符串中出现的字母的次数

int Numbers[26] = { 0 };

for (int i = 0; i < s.size(); i++) {

int n = (s[i] - 'a');

Numbers[n]++;

}

int maxn = 0, minn = 110;

for (int i = 0; i < 26; i++) {

if (Numbers[i] > maxn) maxn = Numbers[i];

//在这里一定要注意,不能直接比对Numbers数组中最小的那位,而是Numbers数组中最小的那位,并且它的值不能等于0(即这个字母至少在字符串中出现过一次)

if (Numbers[i] > 0 && Numbers[i] < minn) minn = Numbers[i];

}

int diff = maxn - minn;

if (isPrime(diff)) {

cout << "Lucky Word" << endl;

cout << diff;

}

else {

cout << "No Answer" << endl;

cout << 0;

}

return 0;

}

这道题我想告诉大家的是,并不是在遍历数组找最小值的时候,一定只有最小值这个逻辑条件。

比如这道题,不仅要找最小值,并且这个最小值还不能是0,一定要清楚的判断我们的需求,然后根据这个需求来书写判断逻辑



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。