E29982:一种等价类划分问题
hashing, http://cs101.openjudge.cn/practice/29982
cpp
#include <iostream>
using namespace std;
int cg(int t){
int ret=0;
while(t>0){
ret+=t%10;
t=t/10;
}
return ret;
}
int main(){
int m,n,k;
char u,v;
cin>>m>>u>>n>>v>>k;
int a[100000]={};
int b[100000]={};
for(int i=m+1;i<n;i++){
a[i]=cg(i);
if(cg(i)%k==0){
b[i]=cg(i)/k;
}
}
for(int p=1;p*k<=36;p++){
int id=0;
int idd=0;
for(int i=m+1;i<n;i++){
if(b[i]==p){
idd=1;
if(id==0){
cout<<i;
id++;
}else{
cout<<","<<i;
}
}
}
if(idd==0)continue;
cout<<'\n';
}
return 0;
}