Even if the world is full of counterfeits, I still regard it as wonderful.
Pile up herbs and incense, and arise again from the flames and ashes of its predecessor — as is known to many, the phoenix does it like this.
The phoenix has a rather long lifespan, and reincarnates itself once every a! years. Here a! denotes the factorial of integer a, that is,a! = 1 × 2 × ... × a. Specifically, 0! = 1.
Koyomi doesn't care much about this, but before he gets into another mess with oddities, he is interested in the number of times the phoenix will reincarnate in a timespan of b! years, that is, . Note that when b ≥ a this value is always integer.
As the answer can be quite large, it would be enough for Koyomi just to know the last digit of the answer in decimal representation. And you're here to provide Koyomi with this knowledge.
The first and only line of input contains two space-separated integers a and b (0 ≤ a ≤ b ≤ 1018).
Output one line containing a single decimal digit — the last digit of the value that interests Koyomi.
2 4
2
0 10
0
107 109
2
In the first example, the last digit of is 2;
In the second example, the last digit of is 0;
In the third example, the last digit of is 2.
这道题刚开始的时候走了点弯路,先是两个数直接对10取余,然后是想着求差,两个想法都是不对的。
其实第二个想法已经比较接近正确的方法了,正确操作就是从a到b直接遍历,在过程中不断对10取余。如果结果为0,就直接跳出,不然就一直遍历。这样的复杂度其实是很低的,毕竟次数最高也就十次嘛。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
typedef long long LL;
int main()
{
LL a,b;
while(cin>>a>>b)
{
LL res=1;
for(LL i=a+1;i<=b;i++)
{
res=res*i%10;
if(!res)
break;
}
cout<<res<<endl;
}
return 0;
}