/*---------------------------------------------
원주율 1만단위내의 0~9까지 들어간 구간
----------------------------------------------*/
#include <stdio.h>
#include <string.h>
char compare_up(const void * a, const void * b)
{/*--------- in ascending powers ---------*/
return (char) ( *(char*)a - *(char*)b );
}
int mcheck(char *str)
{
int i, m = 0;
qsort(str, 10, sizeof(char), compare_up);
for (i = 0; i < 10; i++) if (str[i] == i + '0') m++;
return m;
}
int main(void)
{
FILE *stream;
char ch;
char past[11]= "0000000000", tmp[11] = "\0";
int i;
int cnt = 0;
stream = fopen("pi.txt", "r");
do {
ch = fgetc(stream);
if (ch == ' ') continue;
past[9] = ch;
strcpy(tmp, past);
if (mcheck(tmp) > 9) printf("%5d : %s\n", cnt, past);
for (i = 0; i < 9; i++) past[i] = past[i+1];
cnt++;
} while (ch != EOF);
fclose(stream);
return 0;
}