分析:简单模拟。。。直接按题意来就行
Code:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
unsigned long n;
int main() {
while(~scanf("%lu", &n)) {
while(1) {
bool vis[50];
char s[50];
n++;
sprintf(s, "%lu", n);
int len = strlen(s);
int flag = 0;
for(int i = 0; i < len; i++)
for(int j = i+1; j < len; j++){
if(s[i] == s[j]) {
flag = 1;
break;
}
if(flag) break;
}
if(flag) continue;
memset(vis, 0, sizeof(vis));
int cnt = 0;
int cur = 0;
while(1) {
int k = s[cur]-'0';
cur = (k+cur)%len;
if(vis[cur]) {
flag = 1;
break;
}
vis[cur] = 1;
cnt++;
if(cnt == len) break;
}
if(!flag) {
printf("%lu\n", n);
break;
}
memset(s, 0, sizeof(s));
}
}
return 0;
}