數(shù)字和-2019 年大瀝鎮(zhèn)信息學(xué)初中組試題

題目描述

對于一個正整數(shù) X,把它的各位數(shù)字相加得到一個新的整數(shù),如果新的整數(shù)大于等于 10,繼續(xù)把它的各位數(shù)字相加,又得到一個新的整數(shù)......重復(fù)這個步驟,直到新的整數(shù)只含一個數(shù)字,記最后的這個數(shù)字是 X 的價值。
例如:X=197,那么新的 X=1+9+7=17,再繼續(xù),X=1+7=8,由于 8 只含有一個數(shù)字,所以停止,所有 197 的價值等于 8。
現(xiàn)在有 Q 個詢問,第 i 個詢問的格式是給出兩個正整數(shù):Li 和 Ri,表示的意義是:求區(qū)間[Li,Ri]里面每個整數(shù)的價值的加起來的總和。
數(shù)據(jù)范圍:40%的數(shù)據(jù),Ri-Li<=1000.

輸入格式

輸入格式: : d.in
第一行,一個整數(shù) Q。 1 <= Q <= 100。
接下來是 Q 行,第 i 個行給出兩個正整數(shù):Li 和 Ri。1 <= Li, Ri <= 2^60。

輸出格式

輸出格式: : d.out
對于每個詢問,輸出一個整數(shù)答案后換行。

輸入/輸出例子1

輸入:

樣例一:

1
1 5

樣例二:

2
9 13
44 45

輸出:

樣例一:

15

樣例二:

19
17

代碼

#include<bits/stdc++.h>
using namespace std;
int q;
int main(){
    cin>>q;
    while(q--){
        long long l,r,ans=0;
        cin>>l>>r;
        //多少個輪回
        long long n=(r-l+1)/9;
        ans=n*45;
//        long long m=(r-l+1)%9;
        long long a=l+(n*9);
        for (long long i=a;i<=r;i++)
        {
            if (i%9==0) ans+=9;
             else ans+=i%9;
        }
        cout<<ans<<endl;
        
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容