#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
using namespace std;
char a[20], b[20];__int64 parseInt64(const char * p, int radix){
__int64 v = 0;
for(size_t i = 0; i < strlen(p); ++i){
v = v * radix + p[i] - '0';
}
return v;
}__int64 getWithoutZeroValue(__int64 rank){
memset(a, '1', sizeof(a));
__int64 val = 0;
for(int idx = 0; ; ++idx){
val = val * 9 + a[idx] - '0';
if(val == rank){
a[idx+1] = 0;
return parseInt64(a, 10);
}
else if(val > rank){
a[idx] = 0;
break;
}
}
for(size_t i = 0; i < strlen(a); ++i){
for(char j = '2'; j <= '9'; ++j){
a[i] = j;
val = parseInt64(a, 9);
if(val == rank){
return parseInt64(a, 10);
}
if(val > rank){
a[i] = j - 1;
break;
}
}
} return 0;
}int main(){
while(scanf("%s%s", b, a) != EOF){
__int64 rank = parseInt64(b, 9) - parseInt64(a, 9);
printf("%I64d\n", getWithoutZeroValue(rank));
}
return 0;
}
tjut 2889
最新推荐文章于 2019-01-27 21:10:00 发布