链接
题意:
给出你一个N让你求出有多少对(a,b)相加构成,如果有进位将其进到前面两位的地方
分析:
这个题的重点就在是前面两位而不是一位或者其他位。两个就决定了,每一位影响的都是他同奇偶位上的结果,那么我们就可以把奇偶位各自单独拿出来,看如果构成的,单独拿出来后,就是正常进位了,组成方式就是(x+1),我们将其奇偶方案数相乘,然后将两个为0,的情况剔除,但是就是(x+1)*(y+1)-2.
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5+7;
string str;
void solve(){
cin>>str;
int n=0,m=0;
for(int i=0;i<(int)str.size();i++){
if(i%2) n=n*10+str[i]-'0';
else m=m*10+str[i]-'0';
}
cout<<(n+1)*(m+1)-2<<endl;
}
int main(){
int t=1;
scanf("%d",&t);
while(t--){
solve();
}
return 0;
}