博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 1213C Book Reading
阅读量:5312 次
发布时间:2019-06-14

本文共 1009 字,大约阅读时间需要 3 分钟。

中文题意

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

解题思路

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

源代码

#include
#include
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\n",ans); } return 0;}

转载于:https://www.cnblogs.com/wawcac-blog/p/11463325.html

你可能感兴趣的文章
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
DFS-hdu-2821-Pusher
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>