zoukankan      html  css  js  c++  java
  • Codeforces 1213C Book Reading

    cf题面

    ## 中文题意

    多组数据,每组给一个n给一个m,要求正整数(1)~(n)中,所有能被m整除的数的个位之和。

    解题思路

    首先,能被m整除的数的数量是(lfloorfrac{n}{m} floor),手算一下(或者打表)可以发现能被m整除的数的个位会循环,循环节长度只和m的个位有关,循环节具体情况见代码。然后没了……

    源代码

    #include<cstdio>
    #include<algorithm>
    int T;
    long long n,m;
    int temp[12][12]={//temp[i][0]代表的是循环节长度
        {1,0},
        {10,1,2,3,4,5,6,7,8,9,0},
        {5,2,4,6,8,0},
        {10,3,6,9,2,5,8,1,4,7,0},
        {5,4,8,2,6,0},
        {2,5,0},
        {5,6,2,8,4,0},
        {10,7,4,1,8,5,2,9,6,3,0},
        {5,8,6,4,2,0},
        {10,9,8,7,6,5,4,3,2,1,0}
    };
    int main()
    {
     //   freopen("test.in","r",stdin);
        scanf("%d",&T);
        for(int i=0;i<10;i++)
        {
            for(int j=2;j<=temp[i][0];j++)
            {
                temp[i][j]+=temp[i][j-1];
            }
        }
        while(T--)
        {
            scanf("%lld%lld",&n,&m);
            long long num=n/m;
            m%=10;
            long long ans=temp[m][temp[m][0]];//一整个循环节
            ans*=num/temp[m][0];
            num%=temp[m][0];
            if(num) ans+=temp[m][num];
            printf("%lld
    ",ans);
        }
        return 0;
    }
    
    
  • 相关阅读:
    day 08 小结
    day 07作业
    逆向---入坑记
    Codeforces Round #523 (Div. 2) B,D
    VIM一键配置
    zoj 2704 Brackets 用栈维护括号匹配 (8-A)
    zoj 2840 File Searching
    zoj 1698 Easier Done Than Said?
    13暑假集训6 总结
    13暑假集训#7 总结
  • 原文地址:https://www.cnblogs.com/wawcac-blog/p/11463325.html
Copyright © 2011-2022 走看看