ZZULIOJ 1143: 最大値 - 複数の塩基、Java
質問の説明
n 個の数値を入力し、各数値の底をその後ろの数値 k (k>=2 および k<=10) で指定し、最大の数値に対応する 10 進数を出力します。
プログラムでは、KToD() 関数と main() 関数を定義する必要があります。KToD() 関数の関数は、k 進数を 10 進整数に変換することであり、残りの関数は main() に実装されます。関数。
int KToD(char str[], int k)
{ //関数は 10 進整数に対応する k 基数 str を返します}
入力
最初に整数 n を入力し、次に n 行を入力します。各行には、スペースで区切られた文字列と整数 k が含まれます。文字列は k 基数を表します。すべての入力は負ではありません。
出力
最大の数値に対応する 10 進数を出力します。
サンプル入力コピー
4
1101 2
22121 3
276 8
134 10
サンプル出力コピー
232
ヒント
ヒント: これら 4 つの数値を 10 進数に変換すると、13 232 190 134 となるため、最大値は 232 になります。
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = sc.nextInt();
int mx = 0;
for (int i = 0; i < n; i++) {
mx = Math.max(mx, Integer.parseInt(sc.next(), sc.nextInt()));
}
bw.write(String.valueOf(mx));
bw.close();
}
}