1654: 据说题目里藏着某人的QQ号\(^o^)/~
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 252 Solved: 87
[ Submit][ Status][ Web Board]
Description
某人喜欢把自己的字符串加密。加密是这样的,有一个字母与数字的转换表。把字符串的中的每一个字符转换为对应的数字。然后把这些数字相乘,最后再把这个数字对 751492854 取余数。
Input
多组数据,处理到文件末尾。一行字符串(只有字母组成,长度小于1000)
Output
输出一个整数表示答案
Sample Input
d
Sample Output
5
HINT
表
A(a):6
B(b):9
C(c):0
D(d):5
E(e):8
F(f):1
G(g):9
H(h):4
I(i):6
J(j):3
K(k):2
L(l):34
M(m):67
N(n):67
O(o):78967
P(p):345
Q(q):454
R(r):434
S(s):345
T(t):12
U(u):978
V(v):563
W(w):34
X(x):34
Y(y):5885
Z(z):45
【解析】
一开始做这道题的时候不闲麻烦直接if else if 的做不过最后WA了,算了还是直接开数组把,通过了....
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char s[1001];
int i,n;
long long sum=1;
int a[26]={6,9,0,5,8,1,9,4,6,3,2,34,67,67,78967,345,454,434,345,12,978,563,34,34,5885,45};
while(~scanf("%s",s))
{
sum=1;
for(i=0;s[i]!='\0';i++)
{
if(isupper(s[i]))
{
n=s[i];
sum=sum*a[n-65]%751492854;
}
else if(islower(s[i]))
{
n=s[i];
sum=sum*a[n-97]%751492854;
}
if(sum==0)
break;
}
printf("%lld\n",sum);
}
return 0;
}