소 감 ¶
코딩시간이 매우 오래걸렸다.
함수를 만들어 쓰는데 익숙하지 않아 최대한 함수를 많이 이용하는쪽으로 하려다보니
매우 오래걸린것 같고 다분히 놀러갔다와서 ㅡ,.ㅡ 머리가 돌인된것 같기도
하는듯...
함수를 만들어 쓰는데 익숙하지 않아 최대한 함수를 많이 이용하는쪽으로 하려다보니
매우 오래걸린것 같고 다분히 놀러갔다와서 ㅡ,.ㅡ 머리가 돌인된것 같기도
하는듯...
코 드 ¶
~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); } } } }