#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main()
{
string str;
string res="";
cin>>str;
vector<int> a;
int temp;
for(int i=0;i<9;i++)
{
cin>>temp;
a.push_back(temp);
}
if(str[0]=='-')
{
res +='-';
for(int i=1;i<str.size();i++)
{
int m=str[i]-'0';
ostringstream stream;
stream<<a[m-1];
res =res+stream.str();
}
cout<<res;
}
else
{
for(int j=0;j<str.size();j++)
{
int n=str[j]-'0';
ostringstream stream;
stream<<a[n-1];
res =res +stream.str();
}
cout<<res;
}
}
题目:
输入一个大数,
再输入一个数组9个1-9之间的数,以空格隔开
把大数里的第一个数替换成数组里的第一个数的值,大数里的第二个数替换成第二个数里的值
例子:
-12
2 3 4 5 6 7 6 2 9
输出:
-23
例子2:
735987933
1 3 6 1 6 8 9 1 3
输出:
966319366
大概思路:
由于输入的数实在是太大了10^1000,long long 好像最多只能存20多位,所以只能用字符串来存了
int m=str[i]-'0';
stream<<a[m/m-1];
res +=stream.str();