笨小熊

原创 2015年07月10日 14:15:17
【描述】
       笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非
常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-mi
nn是一个质数,那么笨小熊就认为这是个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

【经验总结】
整个代码可以分为好几个模块,当这些模块都正确的时候,该问题就可解决。
样例输出中:error中出现最多的是字母 ‘r’ 共3次,最少的是字母只出现了1次,3-2=1,2是质数。
这道题的思路是:①找相同字母、②确定最少和最多的字母个数、③判断最多和最少个数之差是否为质数。



【我的代码】
#include<stdio.h>
#include<math.h>
#include<string.h>
#define N 101

char a[N];
int b[N], p[N];

int main(){
    int l;
    int i, j, k;
    int g, h, t;
    while(scanf("%s", a) != EOF){
        l = strlen(a);
        // 相同字母计数
        for(i = 0; i < l; i++){
            int count = 0;
            for(j = 0; j < l; j++){
                g = a[i] + '0';
                h = a[j] + '0';
                if(g == h){
                    count += 1;
                }
            }
            b[i] = count;
        }
        int maxn, minn;


        //确定大小值
        maxn = b[0]; minn = b[0];
        for(i = 1; i < l; i++){
           if(b[i] >= maxn){
                maxn = b[i];
           }
           if(b[i] <= minn){
                minn = b[i];
           }
        }
        k = maxn - minn;


        //打印素数表
        for(i = 2; i < N; i++){
            t = (int)sqrt(i);
            for(j = 2; j <= t; j++)
            if(i % j == 0){
                break;
            }
            if(j > t){
                p[i] = 1;
            }
        }
        if(p[k] == 1){
            printf("Lucky Word\n%d\n", k);
        }
        else{
            printf("No Answer\n0\n");
        }
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java程序员从笨鸟到菜鸟之(六十七)细谈Spring(一)spring简介

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。  然而,Sp...

AJAX实现文本框输入自动提示功能

我认为任何绚丽的效果都是被客户逼出来,因为客户总是想花最少的银子买到最好的软件,就像我们总是想花最少的钱买到最好的货物一样。这周,霸蛮的客户又霸蛮的要我开发一个新功能,原因是因为他们的老总喜欢这东西。...

整理一下思绪

“冰冻三尺,非一日之寒”,就字面意思,大家都非常清楚。哲学里面也经常提到质变的前提是量变,只有在量变的基础上,才会发生质变,其实从我们身边的很多例子当中就能看出,某人的某种特质、特长、技能都是一点一点...
  • dremi
  • dremi
  • 2010-12-04 00:27
  • 19

hibernate save和update以及saveOrUpdate区别

save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象。 update()如果是对一个已经存在的托管对象进行更新那么肯定是要使...

java web listener 监听器

监听器:     正对WEB环境的监听     主要有三类:         1.ServletContext:对servlet上下文(application对象)进行监听 ...
  • cilen
  • cilen
  • 2011-10-06 00:33
  • 25841

《程序员修炼之道:从小工到专家》读书笔记

《程序员修炼之道:从小工到专家》是一本带领程序员从小工成为行业专家的著作。这本书里有70个Tip,这些Tip都是短小精炼的句子,但都是大师们编程经验的总结和沉淀。因此不管什么时候看这本书,也不管你翻到...

【Java并发编程】之十九:并发新特性—Executor框架与线程池(含代码)

在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框...

java监听器的原理与实现

监听器模型涉及以下三个对象,模型图如下: (1)事件:用户对组件的一个操作,称之为一个事件 (2)事件源:发生事件的组件就是事件源 (3)事件监听器(处理器):监听并负责处理事件的方法 执行顺序如...
  • tfygg
  • tfygg
  • 2016-06-12 00:45
  • 8207

java中的事件监听是怎样实现随时监听的

java中的事件监听是怎样实现随时监听的标签(空格分隔): Java参考文献 [1]. http://www.jcodecraeer.com/a/chengxusheji/java/2012/082...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)