AOJ DIVIS
SOL)
주어진 주열의 값이 61로 나누어지나?
MOD연산은 나눗셈이 없는 다항식에 대하여 분배법칙이 성립한다.
따라서 62 % 61 = 1이므로 다항식의 N승들을 생략해주고 더해주면 된다.
[-] Collapse
#include<iostream>
#include<string>
using namespace std;
int table[123];
int main(){
for (int i = '0', val = 0; i <= '9'; i++, val++)
table[i] = val;
for (int i = 'A', val = 10; i <= 'Z'; i++, val++)
table[i] = val;
for (int i = 'a', val = 36; i <= 'z'; i++, val++)
table[i] = val;
string str;
while (true){
cin >> str;
if (str == "end") break;
int len = str.size();
int sum = 0;
for (int i = 0; i < str.size(); i++)
sum += table[str[i]];
sum % 61 == 0 ? cout << "yes" << endl : cout << "no" << endl;
}
return 0;
}
#include<string>
using namespace std;
int table[123];
int main(){
for (int i = '0', val = 0; i <= '9'; i++, val++)
table[i] = val;
for (int i = 'A', val = 10; i <= 'Z'; i++, val++)
table[i] = val;
for (int i = 'a', val = 36; i <= 'z'; i++, val++)
table[i] = val;
string str;
while (true){
cin >> str;
if (str == "end") break;
int len = str.size();
int sum = 0;
for (int i = 0; i < str.size(); i++)
sum += table[str[i]];
sum % 61 == 0 ? cout << "yes" << endl : cout << "no" << endl;
}
return 0;
}
댓글 없음:
댓글 쓰기