1942: преобразование номера
Лимит времени: 1 сек Лимит памяти: 32 MBДобавить: 2738 Решено: 693
[ Добавить ] [ Статус ] [ Web Board ] [Создатель: Импортированные]
Описание
Найти любой два различных недвоичного преобразование отрицательных целого числа (двоичный гекс до 16), оно может быть целым числом в диапазоне от заданного выражения в длине.
Различное шестнадцатеричное обозначение (0,1, ..., 9, A , B, ..., F) , или (0,1, ..., 9, А , В, ..., F) , ,
вход
Только один линейный вход, состоящий из трех целых чисел а, п, б. а представляет собой последующую ичный п представляет собой целое число, б представляет собой шестнадцатеричное число п желая быть преобразованы в двоичное целое число б. а, б представляет собой десятичное целое число, 2 = <а, Ь <= 16.
Выход
Может быть несколько наборов тестовых данных для каждого набора данных, вывод содержит строку, строка имеет двоичное число б преобразуется. Когда выходные символы для всех заглавных букв представлены, а именно (0,1, ..., 9, A, B, ..., F).
Пример ввода
4 123 10
Пример вывода
27
ПОДСКАЗКА
Строка представляет собой различные хранения и шестнадцатеричный.
1 #include <stdio.h> 2 #include < строка .h> 3 4 INT основных () { 5 INT A, B; 6 символ s [ 40 ]; 7 , а (зсапЕ ( " % d% s% d " , & A, S, и б) =! EOF) { 8 INT Len = StrLen (ы); 9 // 将字符串转换成数值!!! 10 для ( Int I = 0 ; я <длина; я ++ ) { 11 , если (s [I]> = ' 0 ' && s [I] <=' 9 ' ) с [I] = s [I] - ' 0 ' ; 12 , если (s [I]> = ' ' && s [I] <= ' е ' ) с [I] = s [I] - ' ' + 10 ; 13 , если (s [I]> = ' ' && s [I] <= ' Р ' ) с [I] = s [I] - ' А ' + 10 ; 14 } 15 INT сумма = 0 , продукт = 1 ; для ( INT I = len- 1 ; я> = 0 ; i-- ) { 17 сумма = сумма + ( INT ) с [я] * продукт; 18 Продукт = Продукт * а; 19 } 20 INT Num = 0 ; 21 // 初始化!!! 22 MemSet (с, 0 , SizeOf (ы)); 23 , если (б == 10 ) { 24 Е ( " % d \ п " , сумма); 25 }еще { 26 // замечательный способ преобразования! ! ! 27 сделать { 28 ЕСЛИ (СУММЫ% B < 10 ) { 29 S [NUM ++] = СУММЫ% B + ' 0 ' ; 30 } еще { 31 S [NUM ++] = СУММЫ% В - 10 + ' ' ; 32 } 33 СУММА / = в; 34 } это время (SUM =! 0 ); 35 для ( INT I = Num- 1 ; я> = 0 ; i-- ) { 36 Е ( " % С " , с [I]); 37 } 38 Е ( " \ п " ); 39 } 40 } 41 возврата 0 ; 42 } 43 44 / * 45 //自己写的 46 аннулируются outPrintf (Int N) { 47 , если (п <10) { 48 Е ( "% d", п); 49 } еще { 50 переключатель (п) { 51 случая 10: 52 Х ( "А"); 53 перерыв; 54 Случай 11: 55 Е ( "В"); 56 перерыв; 57 Случай 12: 58 Е ( "С"); 59 перерыв; 60 Случай 13: 61 Е ( "D"); 62 перерыв; 63 Случай 14: 64 Х ( "Е"); 65 перерыв; 66 Случай 15: 67 Х ( "F"); 68 перерыв; 69 } 70 } 71 } 72 73 INT changeNum (символ с) { 74 INT Num; 75 , если (с == '0') { 76 Num = 0; 77 } иначе , если (с == '1') { 78 Num = 1; 79 } иначе , если (с == '2') { 80 Num = 2; 81 } иначе , если (с == '3') { 82 Num = 3; 83 } иначе , если (с == '4') { 84 Num = 4; 85 } иначе , если (с == '5') { 86 Num = 5; 87 } иначе , если (с == '6') { 88 Num = 6; 89 } иначе , если (с == '7') { 90 Num = 7; 91 } иначе , если (с == '8') { 92 Num = 8; 93 } иначе , если (с == '9') { 94 Num = 9; 95 } иначе , если (с == 'а' || с == 'А') { 96 Num = 10; 97 } иначе , если (с == 'Ь' || с == 'В') { 98 Num = 11; 99 } иначе , если (с == 'с' || с == 'С') { 100 Num = 12; 102 Num = 13; 103 } иначе , если (с == 'е' || с == 'Е') { 104 Num = 14; 105 } еще { 106 Num = 15; 107 } 108 возврата Num; 109 } 110 111 недействительными GetNum (символ s [], Int Len, Int ANS []) { 112 INT Num; 113 для (INT I = 0, J = LEN-1; я <длина; я ++, J -) { 114 ANS [I] = changeNum (с [J]); 115 } 116 } 117 118 INT Основной () { 119 INT A, B; 120 символ s [40]; // п не обязательно книга число между 0-9, может появиться, А и тому подобное! Это необходимо с хранения строки 121 это время (! Scanf ( "% D% S% D", & A, S & B) = в EOF) { 122 INT ВНС [40], NUM; 123 INT Len = StrLen (S); 124 GetNum (S, Len, АНС); 125 без знака Long Long INT СУММА = 0, Продукт = 1;. 126 для (INT I = 0; I <длина; I ++) { 127 СУММА = СУММ + ANS [I] * Продукт; 128 * А = Изделие; 129 } 130. NUM = 0; 131 сделать { 132 ВНС [NUM ++] = SUM% B; 133 SUM / = B; 134 } в то время как (сумма = 0!); 135 для (INT I = Num-1; я> = 0; I -) { 136 outPrintf (ВНС [I]); 137 } 138 Е ( "\ п"); 139 } 140 возврата 0; 141 } 142 * /