赛氪OJ-专注于算法竞赛的在线评测系统 (saikr.com)
刚开始这样写的,结果是:
#include<bits/stdc++.h>
using namespace std;
int k,l,r;
int sum;
int cnt[1010];
int main()
{
cin>>k>>l>>r;;
for(int i=l;i<=r;i++)
{
// 个位数为k
if(i%10==k) sum+=i;
if(i%k==0) sum+=i;//k的倍数
}
cout<<sum<<endl;
return 0;
}
把i打印出来看一下,发现是没去重,去一下重就可以了:
去重
#include<bits/stdc++.h>
using namespace std;
int k,l,r;
int sum;
int cnt[1010];
int main()
{
cin>>k>>l>>r;;
for(int i=l;i<=r;i++)
{
// 个位数为k
if(i%10==k)
{
cnt[i]=1;
//cout<<"i: "<<i<<endl;
sum+=i;
}
if(i%k==0)
{
if(cnt[i]==0)
{
//cout<<"i: "<<i<<endl;
sum+=i;//k的倍数
}
}
}
cout<<sum<<endl;
return 0;
}