c·c++/c 프로그래밍

분수의 반복구간 구하기

바로이순간 2012. 5. 11. 14:24




#include <stdio.h>

int main() {

    int i, j, k, x, y;

    int rem[10000]={0,};

    int digits[10000]={0,};


    printf("분수입력: ");

    scanf("%d%d", &x, &y);


    // 정수 부분 출력

    printf("%d.",x/y);

    // 정수 부분은 버립니다.

    x=x%y;


    i=0;

    while(1) {

        rem[i]=x;

        x=x*10;

        digits[i]=x/y;

        x=x%y;

        j=i-1;

        while(j>=0 && rem[i]!=rem[j]) --j;

        if(j>=0) break; // 찾았다.

        i=i+1;

    }      

    // 최종 출력      

    for(k=0;k<j;++k) printf("%d",digits[k]);

    printf("[");

    for(k=j;k<i;++k) printf("%d",digits[k]);

    printf("]");

            

    return 0;

}

'c·c++ > c 프로그래밍' 카테고리의 다른 글

gotoxy 함수  (0) 2012.05.14
피보나치 수열  (0) 2012.05.11
선택정렬 - 개량형  (0) 2012.05.11
세수를 크기 순으로 출력하기  (0) 2012.05.10
분수의 덧셈  (0) 2012.05.09