//2745 진법변환
//c언어 하다가 런타임 에러나서 자바로 다시 함
/* 알고리즘
scanf N B
N을 자릿수대로 나누어야함 -> string로 저장
1. 아스키코드 변환
2. 진법변환: 각각 숫자들에 B의 0제곱 ~ B의 마지막 제곱
length = sizeof(string)/sizeof(int)
for(i=0;i<length;i++)
i) 0<=char[i]<=9
아스키코드 변환
진법변환
ii) 65<=char[i]<90 :A~ Z는 아스키코드로 65~90
아스키코드 변환
진법변환
*/
import java.util.Scanner;
public class changeNum{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String N = sc.next();
int B = sc.nextInt();
int len = N.length();
int result = 0;
int num = 0;
for(int i=0;i<len;i++){
if(N.charAt(i)>=65) //charAt(): String 타입 문자열을 char타입으로 바꾸어 주는 메소드
num = N.charAt(i)-55;
else
num = N.charAt(i)-'0';
int t = (int)Math.pow(B, len-i-1);//Math.pow(대상숫자, 지수) -> 거듭제곱 구하는 메소드, double형
//제곱수가 올라가는 형태를 생각해보면, 배열 인덱스와 반대로 지수가 올라가므로 (len-i)-1 해주어야 함
result += t*num;
}
System.out.println(result);
sc.close();
}
}
import Foundation
let input = readLine()!.split(separator: " ")
let arr = Array(input[0]).reversed()
let notation = Double(input[1])!
let number:[String] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K" ,"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
var digit: Double = 0
var result = 0
for i in arr {
for j in 0..<number.count {
if(number[j] == String(i)){
result += Int(pow(notation, digit)) * j
}
}
digit += 1
}
print(result)
let input = readLine()!.split(separator: " ")
let result = Int(input[0], radix: Int(input[1])!)!
print(result)