美文网首页
数字和-2019 年大沥镇信息学初中组试题

数字和-2019 年大沥镇信息学初中组试题

作者: 何景根 | 来源:发表于2020-11-17 11:10 被阅读0次

    题目描述

    对于一个正整数 X,把它的各位数字相加得到一个新的整数,如果新的整数大于等于 10,继续把它的各位数字相加,又得到一个新的整数......重复这个步骤,直到新的整数只含一个数字,记最后的这个数字是 X 的价值。
    例如:X=197,那么新的 X=1+9+7=17,再继续,X=1+7=8,由于 8 只含有一个数字,所以停止,所有 197 的价值等于 8。
    现在有 Q 个询问,第 i 个询问的格式是给出两个正整数:Li 和 Ri,表示的意义是:求区间[Li,Ri]里面每个整数的价值的加起来的总和。
    数据范围:40%的数据,Ri-Li<=1000.

    输入格式

    输入格式: : d.in
    第一行,一个整数 Q。 1 <= Q <= 100。
    接下来是 Q 行,第 i 个行给出两个正整数:Li 和 Ri。1 <= Li, Ri <= 2^60。

    输出格式

    输出格式: : d.out
    对于每个询问,输出一个整数答案后换行。

    输入/输出例子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;
            
        }
    }
    

    相关文章

      网友评论

          本文标题:数字和-2019 年大沥镇信息学初中组试题

          本文链接:https://www.haomeiwen.com/subject/pgkxiktx.html