TB椰程 TypeBuddy 打字搭子

你的飞碟在这儿

洛谷·深入浅出 · 代码 · cpp · 难度 1/5 · 共 524 字

彗星名与小组名字母乘积 mod 47 相等则 GO

  • 洛谷
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/1426
// 题意:彗星名与小组名都转成字母乘积(A=1..Z=26),若两者 mod 47 相等输出 GO,否则 STAY。
// 思路:分别求两串的乘积并对 47 取模,比较即可。
// 复杂度:O(n)。
// 易错点:乘积可能很大要用 long long;模的是 47 不是 26。
#include <iostream>
#include <string>
using namespace std;
long long conv(const string &s){
    long long r = 1;
    for(char c : s) r = r * (c - 'A' + 1) % 47;
    return r;
}
int main(){
    string comet, group;
    cin >> comet >> group;
    if(conv(comet) == conv(group)) cout << "GO" << endl;
    else cout << "STAY" << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK