, ( , - "measure, don't guess"). , , , .
int hasDupes (unsigned int n) {
int i, used[10];
if (n > 9999999999)
return 1;
for (i = 0; i < 10; i++)
used[i] = 0;
while (n != 0) {
if (used[n%10])
return 1;
used[n%10] = 1;
n /= 10;
}
return 0;
}
, .
, 0 999:
const int *hasDupes = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
:
0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};
hasDupes[n].
, , ( ), , : -)
.