Digit Product
题意:本题题意就是给出T个数据,每个数据l和r,通过l和r之间区间的数,拆成各位数字相乘求出结果。
思路:本题一开始的想法是做模拟,但仔细想想就可知道,一旦l和r区间超过10,位数中便会出现一个数字0,导致整个长度乘积为0。所以,只需要特判一下l和r区间长度即可。完全模拟会导致TLE。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ll n;
cin>>n;
while(n--)
{
ll l,r;
ll cnt=1;
cin>>l>>r;
if(r-l>=10)
cnt=0;
else{
for(;l<=r;l++)
{
ll p=l;
while(p>1)
{
cnt=cnt*(p%10);
cnt%=1000000007;
p/=10;
}
}
}
cout<<cnt<<endl;
}
return 0;
}