1. 程式人生 > >小凱的數字

小凱的數字

這是一道水題

首先一個數學常識:一個數各個數位上的數字之和對9取模的結果即為該數字對9取模的結果。
所以引申一下就是:將當前數字任意切分,求和得到的數,對於9取模的結果,即為當前數字對9取模的結果。
這個結果,應當很好證明,我就不證明了。
所以,有了這個結論,我們就可以秒解這道題。
用一個等差數列求和公式,如果怕乘法爆longlong,可以邊乘邊取模,然後手動求一下2在模9下的逆元,很好想,5就夠了。
所以就可以愉快地計算了。
程式碼如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; long long inv=5; int q; long long l,r; int main(){ scanf("%d",&q); while(q--){ scanf("%lld%lld",&l,&r); int ans=(l+r)%9*(r-l+1)%9*inv%9; printf("%d\n",ans); } return 0; }