Yet Another Meme Problem(打表找规律)

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
3
1 11
4 2
191 31415926
Output
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<bits/stdc++.h>
#define ll long long
using namespace std;

ll A,B;
ll C[]={9,99,999,9999,99999,999999,9999999,99999999,999999999}; //一共是9个,一开始少了一个,wa了两次
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		cin>>A>>B;
		int pos=upper_bound(C,C+9,B)-C;
		cout<<A*(ll)pos<<endl;
	}
	return 0;
}

努力加油a啊,(o)/~

发布了414 篇原创文章 · 获赞 23 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/starlet_kiss/article/details/104127071