~cpp #include <stdio.h> static int input_10,input_num; int get_maxjarisu(int num1,int num2); int get_jegob(int num,int count); void behavior(int num1,int num2); int get_count(int num1,int num2,int num3); /*///////////////////////////////////////// get_maxjarisu 최대 자리수 얻기 함수 기능 : 숫자,진법 값을 받아 최대 자리숫자를 얻는다 최대자리숫자는 나중에 출력부분에서 for 문에 쓰이게 된다. ////////////////////////////////////////*/ int get_maxjarisu(int num1,int num2)// num1 = 숫자 num2 = 진법 { int count=1; int dividing; while(1) { dividing = get_jegob(num2,count); if (num1>=dividing){ count++; } else{ break; } } return count; } /*//////////////////////////////////////// get_count 자리수의 값 얻기 함수 기능 : 각자리의 숫자의 값을 얻는다 return 값은 진법<--보다 항상 작다 응용 : 원하는 자리의 수의 값을 얻을수 있다. ////////////////////////////////////////*/ int get_count(int num1,int num2,int num3) //num1 = 숫자 ,num2 = 진법,num3 = 자리수 { if (num3 ==1){ return num1 % num2; } else{ int temp; temp = num1 % get_jegob(num2,num3-1); num1 = num1 - temp; //나머지를 없앰으로서 소숫점을 남기지 않는다. return (num1 % get_jegob(num2,num3))/get_jegob(num2,num3-1); } } /*//////////////////////////////////////// get_jegob 제곱함수 기능 : 단순이 제곱을 해주는 함수이다. ////////////////////////////////////////*/ int get_jegob(int num,int count) //num =제곱할수 num2 =제곱할횟수 { int i; int sum=1; for (i=0;i<count;i++) { sum=sum*num; } return sum; } /*//////////////////////////////////////// behavior 행동함수 기능 : for문으로 각자리숫자의 값을 output하는 기능을한다. ////////////////////////////////////////*/ void behavior(int num1,int num2) //num1 = 숫자 ,num2 = 나눌수 { int i; int temp=0; for (i=get_maxjarisu(num1,num2);i>0;i--) { temp = get_count(num1,num2,i); printf("%d ",temp); } printf("\n\n"); } /*//////////////////////////////////////// main 말그대로 메인 ////////////////////////////////////////*/ void main() { while(1) { printf("/////////////////////////\n"); printf("////////진법바꾸기///////\n"); printf("/////////////////////////\n"); printf("10진수 = "); scanf("%d",&input_10); if (input_10==0){ break; } else{ printf(" 진법 = "); scanf("%d",&input_num); if (input_num >=2 && input_num <=24){ printf(" 결과 = "); behavior(input_10,input_num); } } } }