首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
17-语言入门-17-笨小熊
时间:
2016-01-19 12:37:54
阅读:
173
评论:
0
收藏:
0
[点我收藏+]
标签:
题目地址:
http://acm.nyist.net/JudgeOnline/problem.php?pid=62
?
描述
笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设
maxn
是单词中出现次数最多的字母的出现次数,
minn
是单词中出现次数最少的字母的出现次数,如果
maxn-minn
是一个质数,那么笨小熊就认为这是个
Lucky Word
,这样的单词很可能就是正确的答案。
输入
第一行数据
N(0<N<100)
表示测试数据组数。
每组测试数据输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于
100
。
输出
每组测试数据输出共两行,第一行是一个字符串,假设输入的的单词是
Lucky Word
,那么输出
“Lucky Word”
,否则输出
“No Answer”
;
第二行是一个整数,如果输入单词是
Lucky Word
,输出
maxn-minn
的值,否则输出
0
样例输入
2
error
olympic
样例输出
Lucky Word
2
No Answer
0
?
?
代码:
#include <stdio.h>
#include <math.h>
#define true 1
#define false 0
//输入最大长度<100
const static int INPUTSTRLEN = 100;
//小写字母个数
const static int ALPHABETCOUNT = 26;
//判断是否是素数
static int isPrimeNumber(int number);
//计算(字符出现最多-字符出现最少)的值
static int calMaxSubMinValue(char *str);
int main()
{
??? int readLen = 0;
??? scanf("%d",&readLen);
??? getchar();
???
??? while (readLen > 0)
??? {
??????? char str[INPUTSTRLEN] = {0};
??????? gets(str);
???????
??????? int calValue = calMaxSubMinValue(str);
??????? if (isPrimeNumber(calValue) == true)
??????? {
??????????? printf("Lucky Word\n");
??????????? printf("%d\n",calValue);
??????? }
??????? else
??????? {
??????????? printf("No Answer\n");
??????????? printf("0\n");
??????? }
???????
??????? --readLen;
??? }
???
???
??? return 0;
}
//计算(字符出现最多-字符出现最少)的值
static int calMaxSubMinValue(char *str)
{
??? int index = 0;
??? int arr[ALPHABETCOUNT]={0};
???
??? for(;str[index] != ‘\0‘;++index)
??? {
??????? int flag = str[index]-‘a‘;
??????? ++arr[flag];
??? }
???
??? int minCount = INPUTSTRLEN;
??? int maxCount = 0;
???
??? index = 0;
??? for (; index < ALPHABETCOUNT; ++index)
??? {
??????? if (minCount > arr[index] && arr[index]!=0)
??????? {
??????????? minCount = arr[index];
??????? }
???????
??????? if (maxCount < arr[index])
??????? {
??????????? maxCount = arr[index];
??????? }
??? }
???
??? return minCount!=INPUTSTRLEN?maxCount - minCount:0;
}
//判断是否是素数
static int isPrimeNumber(int number)
{
??? if(number < 2)
??????? return false;
??? int i=2;
??? int k = sqrt(number);
??? for(;i<=k;++i)
??? {
??????? if(number%i == 0)
??????????? break;
??? }
??? if(i > k)
??????? return true;
??? else
??????? return false;
} ? ? ? ?
?
本体中将字符中每个字符-‘a‘作为一个int数组的索引
在数组指定的索引位置来累加出现的个数次数
最终通过该int数组,来获取最大出现次数和最小出现次数
?
?
17-语言入门-17-笨小熊
标签:
原文地址:http://www.cnblogs.com/sharpfeng/p/5141731.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!