1 条题解

  • 0
    @ 2025-8-24 21:21:16

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar luhongrui
    AFO

    搬运于2025-08-24 21:21:15,当前版本为作者最后更新于2019-09-28 10:28:23,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    P1125 【笨小猴】

    思路

    将题目的输入字符中相同的数量存储到一个数组中,然后找出最大和最小,相减后判断是否是质数,输出。

    实现

    废话不多说,上代码:

    #include<bits/stdc++.h>
    using namespace std;
    int a[26];//用来储存每一个字母的数量
    int main(){
        int le=0,xunhuan=0,maxn=-500,minn=9999;//le 是单词的长度,xunhuan 是临时变量
        string s;
        cin>>s;
        le=s.size();//求出单词的长度
        for(int i=0;i<=le-1;i++){
            xunhuan=s[i];
            a[xunhuan-97]++;//累计字母数量
        }
        int zhishu[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};//质数表,100以内足够用了
        for(int i=0;i<=25;i++){
            if(a[i]<minn&&a[i]!=0)minn=a[i];//找出最少的字母
        }
        for(int i=0;i<=25;i++){
            if(a[i]>maxn)maxn=a[i];//找出最多的字母
        }
        int cha=maxn-minn;//相减
        for(int i=0;i<=24;i++){
            if(cha==zhishu[i]){
                cout<<"Lucky Word"<<endl;
                cout<<cha;//如果是质数直接输出并结束程序
                return 0;
            }
        }
        cout<<"No Answer"<<endl;//如果找完了还没有就不是质数
        cout<<"0";
        return 0;
    } 
    

    3ms AC

    最后在推荐一下自己的博客

    点这里

    • 1

    信息

    ID
    127
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    1
    已通过
    1
    上传者