알고리즘 사상은 이' 12 진수' 숫자 eee 를 10 진수 (변환 결과 1727) 로 변환한 다음 1727 의 제곱 (제곱은 2982529) 을 계산한 다음 2982529 를' 12 진수' 로 변환하고 출력하는 것이다.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
12 진수:
Eet001
계산에 사용되는 c 절차는 다음과 같습니다.
//------------------
# includelt; Stdio.hgt;;
# includelt; Math.hgt;;
Void fun1(long int a) /* a 를' 12 진수' 숫자로 변환하고 */
를 출력합니다{
If (a) {
팬 1 (a/12);
스위치 (a12) {
기본값:
Printf("d ",a12); 브레크;
Case10: putchar ('t'); 브레크;
Case11: putchar ('e'); 브레크;
}
}
}
Long int fun2(char *s, int n) /* s 가 가리키는 문자열에 저장된' 12 진수' 숫자를 10 진수로 변환합니다. n 은 s 문자열의 길이 */
입니다{
Int i;;
Longint a = 0;
For (i = 0;; Ilt;; N; I++) {
스위치 (s [n-I-1]) {
Default: a+= (s [n-I-1]-'0') * (long int) floor (pow (12, i));); 브레크;
Case' t': a+= 10 * (long int) floor (pow (12, i));); 브레크;
Case' e': a+= 11 * (long int) floor (pow (12, i));); 브레크;
}
}
Return a;;
}
인트메인 (void)
{
Long int a=fun2("eee ",3); /*' 12 진수' 숫자 eee 를 10 진수로 변환 */
Fun1 (a * a); /* 출력 a 의 제곱에 대한 12 진수 형식 */
Return 0;;
}
//------------------