zoukankan      html  css  js  c++  java
  • P4942小凯的数字

    给定一个序列,如12345 56789 1011121314等,输出对其取余9的结果。

    那么我们需要明白一个定理,一个序列对一个数的取余结果等于它各位之和取余那个数的结果。证明似乎是这样i=0nai10ii=0nai1i=i=0nai(mod9)(不会)。

    然后我们只需要求出每一位的和即可,由于他们之间的差为1,所以可以用等差数列求和公式但这里涉及了两个问题,一个就是/2的问题,因为二者:l+r r-l+1的和为2r+1,

    所以当r为奇数时2r+1为奇数,r为偶数时2r+1也为奇数,而一个奇数只能由一个奇数和一个偶数之和组成,所以必定是一个奇数一个偶数,所以将偶数除以二;第二个问题则是

    long long溢出的问题,所以我们分别存储,并进行先模再模的公式,最后输出即可。

    1.数论一定要动手算一算样例

    2.注意思考巧妙的方法和处理的办法,多推导

    代码

    #include<bits/stdc++.h> 
    using namespace std;
    long long l,r;
    int q;
    int main(){
        cin>>q;
        while(q--){
            cin>>l>>r;
            long long a=l+r;
            long long b=r-l+1;
            if(a%2==0) a/=2;
            else b/=2;
            long long ans=((a%9)*(b%9))%9;
            cout<<ans<<endl;
        }
        return 0;
    } 
  • 相关阅读:
    Shell 函数
    Linux shell脚本中shift的用法说明
    Python 命令行参数
    浅析 Jenkins 插件开发
    晒一晒Jenkins那些常用插件
    linux系统用vim编写python,实现自动补全
    C语言中printf的用法
    poj 1088 滑雪
    poj 1036 Gangsters
    hdu 1176 免费馅饼
  • 原文地址:https://www.cnblogs.com/china-mjr/p/11746188.html
Copyright © 2011-2022 走看看