50分,不知道哪里错了,求助!
查看原帖
50分,不知道哪里错了,求助!
1229013
Mr_LiuXinan楼主2024/1/22 16:38

代码如下:

#include "iostream"
using namespace std;
#include "vector"
#include "algorithm"
#include "cmath"

vector <int> arr_n;
vector <char> arr_w;

void Search(char c) {
    for (int i = 0; i < arr_w.size(); i++) {
        if (c == arr_w[i]) {  // 如果在里面
            arr_n[i]++;    // 对应的数量++
            return;  // 退出
        }
    }
    arr_w.push_back(c); arr_n.push_back(1);  //  如果不在,....  
}

bool IsInt(double num) { return num == (int)num; }

bool IsPrime(double num) {
    for (double i = 2; i < sqrt(num); i++) {
        if (IsInt(num / i)) return false;
    }
    return true;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    string word;
    cin >> word; //输入
    for (int i = 0; i < word.size(); i++) {
        Search(word[i]);         //查找每个字母
    }
    int maxn = *max_element(arr_n.begin(), arr_n.end());  //  次数最大值
    int minn = *min_element(arr_n.begin(), arr_n.end());  //  次数最小值

    if (IsPrime(maxn - minn)) {   // 如果是质数
        cout << "Lucky Word" << "\n" << maxn - minn << endl;
    }
    else {  //  否则
        cout << "No Answer" << "\n" << 0 << endl;
    }

    return 0;
}
2024/1/22 16:38
加载中...