안녕하세요. 오늘은 암호를 풀거예요.
https://www.acmicpc.net/problem/11575
s[i]와 a와 b가 있으면
일단 s[i]를 숫자로 s[i]-'A'가 됩니다.
그러면 a*(s[i]-'A')+b에 %26을 하고 다시 문자로 'A'를 더해준 다음에 char형으로 바꿔서 출력해주면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int T, i, a, b;
string s;
cin >> T;
for (i = 0; i < T; i++)
{
cin >> a >> b >> s;
int len = s.length(), j;
for (j = 0; j < len; j++)
{
cout << (char)('A' + (a * (s[j] - 'A') + b) % 26);
}
cout << "\n";
}
}
감사합니다.