题解

ykj21 大师球 2023-12-29 18:59:20 11

代码:

//头文件自己写!!!

int n, b[27];  // 声明变量 n 和数组 b,数组长度为 27,用来统计字母出现的次数
bool zhishu(int x) {  // 定义函数 zhishu,用于判断一个数是否为质数
    for (int i = 2; i <= sqrt(x); i++) {  // 循环遍历 2 到 sqrt(x) 之间的数
        if (x % i == 0)  // 若 x 能被 i 整除,则不是质数
            return false;  // 返回 false
    }
    return true;  // 若 x 不能被任何数整除,则是质数
}

int main() { freopen("word.in", "r", stdin); // 从文件 "word.in" 中读取输入 freopen("word.out", "w", stdout); // 输出结果到文件 "word.out" string s; // 声明字符串变量 s int k, max = 0, min = 100; // 声明变量 k,max 和 min,并初始化 max 为 0,min 为 100 cin >> s; // 读取输入到字符串 s for (int i = 0; i <= s.size() - 1; i++) { // 循环遍历字符串 s 中的每个字符 k = s[i] - 'a' + 1; // 将字母转换为对应的数字(a 对应 1,b 对应 2,以此类推) b[k]++; // 统计每个字母出现的次数 } for (int i = 0; i <= s.size() - 1; i++) { // 再次遍历字符串 s 中的每个字符 k = s[i] - 'a' + 1; // 将字母转换为对应的数字 if (b[k] > max) // 如果当前字母出现的次数大于 max max = b[k]; // 更新 max 的值 if (b[k] < min) // 如果当前字母出现的次数小于 min min = b[k]; // 更新 min 的值 } if (zhishu(max - min) and max - min > 1) // 如果 max - min 是质数且大于 1 cout << "Lucky Word" << endl << max - min; // 输出 "Lucky Word" 和 max - min 的值 else cout << "No Answer" << endl << 0; // 否则输出 "No Answer" 和 0 return 0; // 返回 0,表示程序正常结束 }

                                                                             (注释来源于chatGTP3.5)   
{{ vote && vote.total.up }}