time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Try guessing the statement from this picture http://tiny.cc/ogyoiz.
You are given two integers AA and BB, calculate the number of pairs (a,b)(a,b) such that 1≤a≤A1≤a≤A, 1≤b≤B1≤b≤B, and the equation a⋅b+a+b=conc(a,b)a⋅b+a+b=conc(a,b) is true; conc(a,b)conc(a,b) is the concatenation of aa and bb (for example, conc(12,23)=1223conc(12,23)=1223, conc(100,11)=10011conc(100,11)=10011). aa and bb should not contain leading zeroes.
Input
The first line contains tt (1≤t≤1001≤t≤100) — the number of test cases.
Each test case contains two integers AA and BB (1≤A,B≤109)(1≤A,B≤109).
Output
Print one integer — the number of pairs (a,b)(a,b) such that 1≤a≤A1≤a≤A, 1≤b≤B1≤b≤B, and the equation a⋅b+a+b=conc(a,b)a⋅b+a+b=conc(a,b) is true.
Example
input
Copy
3 1 11 4 2 191 31415926
output
Copy
1 0 1337
Note
There is only one suitable pair in the first test case: a=1a=1, b=9b=9 (1+9+1⋅9=191+9+1⋅9=19).
解题说明:此题是一道数学题,对方程进行求解即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
long long int a, b;
long long int ans;
long long int p;
for (; t > 0; t--)
{
scanf("%lld %lld", &a, &b);
ans = 0;
p = 9;
while (p <= b)
{
ans += a;
p = 10 * p + 9;
}
printf("%lld\n", ans);
}
return 0;
}