记录几道水题
第一题
题目链接
题目大意:给 n和m 问1-n里面m的倍数中个位数的和是多少.
某场div3的c题. n/m肯定是1-n里面m倍数的个数.那么这些数里面各位数的和怎么算呢?分析一下可以知道最多10个数后就会进入循环.因为0-9只有10个数嘛.可以手动先把每个数的循环数组算出来.当然这是最直接的做法.还有一种偷懒的算法.
因为最多10个就进入循环.那么我们直接for(1-10)遍历一遍m 1-10的倍数就可以了.具体看代码
#define LL long long
#include <algorithm>
#include <iostream>
#include <stack>
using namespace std;
const int N = 2e5+10;
int main(){
LL n,t,m;
cin >> t;
while(t--){
cin >> n >> m;
LL num = n/m;
int l = num%10;
LL ans=0;
LL tmp=0;
for(int i=1;i<=10;++i){
tmp += (i*m)%10;
if(i <= l) ans+= (i