想请教各位大佬我这种解法哪里错了,只有40分
查看原帖
想请教各位大佬我这种解法哪里错了,只有40分
1376308
Calmingjucie楼主2024/8/28 22:59

对比了题解,我的思路貌似和雪乃大大的差不多,只是字符的读取和存入方式不一样但是我在另外的题目中也用到了该方法AC,如果分析不对请指正。

#include <iostream>
#include <math.h>
#include <cstring>

using namespace std;

int main()
{
    int max1=0,min1=99999,s[27];//英文字母共26个
    char m;
    while(cin>>m){//当没有字符了循环结束
        s[m-'a']++;//将字母与个数对应
        if(s[m-'a']>=max1) max1=s[m-'a'];//取最大值
        if(s[m-'a']<=min1) min1=s[m-'a'];//取最小值
    }
    int n=max1-min1,f=1;
    if(n==0||n==1) f=1;//特殊判断0和1的情况
    for(int i=2;i<n;i++){//判断质数
        if(n%i==0){
            f=0;
            break;
        }
        else continue;
    }
    if(f){
        cout<<"Lucky Word"<<"\n"<<n;
    }
    else{
        cout<<"No Answer"<<"\n"<<'0';
    }
    return 0;
}
``` ```
2024/8/28 22:59
加载中...