测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A18344. 加密

填空题 中等

题目描述

加密

题目描述

小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密。

他有一本密码本,密码本告诉你:每个数字应该变成哪个数字。

数字一共有 10 个:0 1 2 3 4 5 6 7 8 9

密码本会依次告诉你:0 要变成什么、1 要变成什么……9 要变成什么

请你按照密码本,把原来的每个数字都换成新的数字,然后输出。

输入格式

输入共有三 3 行

第一行:一个整数,表示有多少个数字需要加密;

第二行:这些需要加密的数字;

第三行:密码本,一共 10 个数字。

第 0 个数字:表示 0 加密后变成什么;

第 1 个数字:表示 1 加密后变成什么;

第 2 个数字:表示 2 加密后变成什么;

……

第 9 个数字:表示 9 加密后变成什么。

输出格式

输出加密后的数字,把输入第二行里的每个数字,都按照输入第三行的密码本换掉后输出。

样例输入 1

7
0 2 0 3 4 1 9
9 0 1 2 3 4 5 6 7 8

样例输出 1

9 1 9 2 3 0 8

样例解释

第二行要加密的数字是:0 2 0 3 4 1 9

第三行密码本规则:

0 变成 9
1 变成 0
2 变成 1
3 变成 2
4 变成 3
5 变成 4
6 变成 5
7 变成 6
8 变成 7
9 变成 8

替换后结果:9 1 9 2 3 0 8

参考答案

#include <iostream> using namespace std; int a[20010]; int keys[11]; int main() { int n; cin >> n; for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < 10; ++i) cin >> keys[i]; for (int i = 0; i < n; ++i) cout << keys[a[i]] << ' '; cout << endl; return 0; }
上一题 下一题