题解:题目中每2位进一位。我们发现奇数位置一定如果进位一定会进到奇数位上,偶数同理,则我们把奇数位拆成一个数字x,偶数位拆成一个数字y,这样我们的这两个数字就相当于是普通10进制。然后奇数偶数相互独立互不影响,直接组合一下,答案是(x+1)*(y+1)-2.
AC代码:
#include <bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
const int N=1e6+5,INF=1e16;
int n;
void solve() {
string s,a,b;
cin>>s;
if(stoi(s)<=9){
cout<<stoi(s)-1<<endl;
return;
}
for(int i=0;i<s.size();i++){
if(i%2)a+=s[i];
else b+=s[i];
}
int x=stoi(a),y=stoi(b);
cout<<(x+1)*(y+1)-2<<endl;
}
main(){
ios_base::sync_with_stdio(false), cin.tie(nullptr);
//init();
int T;
cin>>T;
while(T--)solve();
}