TLE:
#include <bits/stdc++.h>
#define int long long
#define ull unsigned long long
#define mod 998244353
#define MOD 1000000007
using namespace std;
template<typename T>
T jia (T a,T b)
{
return a + b;
}
void solve ()
{
int l,r;
cin >> l >> r;
int ans = 1;
if (r - l + 1 >= 10) ans = 0;
for (int i = l;i <= r;i ++)
{
int cnt = i;
while (cnt)
ans *= cnt % 10,
cnt /= 10;
}
cout << ans % MOD << endl;
}
const int N = 1e5 + 5;
int a [N];
signed main () {
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;
cin >> t;
while (t --)
{
solve ();
}
return 0;
}
我以为答案为‘0’的情况需要直接 continue 掉,于是…WA:
#include <bits/stdc++.h>
#define int long long
#define ull unsigned long long
#define mod 998244353
#define MOD 1000000007
using namespace std;
template<typename T>
T jia (T a,T b)
{
return a + b;
}
void solve ()
{
}
const int N = 1e5 + 5;
int a [N];
signed main () {
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;
cin >> t;
while (t --)
{
int l,r;
cin >> l >> r;
int ans = 1;
if (r - l + 1 >= 10)
{
cout << "0\n";
continue;
}
for (int i = l;i <= r;i ++)
{
int cnt = i;
while (cnt)
ans *= cnt % 10,
cnt /= 10;
}
cout << ans % MOD << endl;
}
return 0;
}