蓝桥杯-算法提高-产生数-字符串+运算
给出一个整数n ( n<10^30) 和k个变换规则(k<=15)。
规则:
(1)1位数可变换成另一个一位数;
(2)规则的右部不能为0。
例如:n=234,有规则(k=2):
2 → 5
3 → 6
上面的整数234经过变换后可能产生出的整数为(包括原数):
234
534
264
564
共4 种不同的产生数
求经过任意次的变换(0次或多次),能产生出多少个不同的整数。仅要求输出不同整数个数。
- 输入格式
n
k
x1 y1
x2 y2
… …
xn yn - 输出格式
格式为一个整数(满足条件的整数个数)。 - 样例输入
234
2
2 5
3 6 - 样例输出
4 - 解题思路:
①整数n<10^30,整数比较大,用字符串来表示数字;
string n;
②定义一个二维数组标记两个数字i和j是否可以转换;
int flag[10][10]={
0};
③每一位的转换数字的个数连乘的结果即为可转换整数的个数。
long long sum=1;//整数个数,初始值=1!
...
sum*