洛谷-P2084 進位制轉換

2020-08-12 23:56:31

題目描述

今天小明學會了進位制轉換,比如(10101)2 ,那麼它的十進制表示的式子就是 :

124+0*23+122+0*21+1*2^0,

那麼請你程式設計實現,將一個M進位制的數N轉換成十進制表示的式子。

注意:當係數爲0時,該單項式要省略。

輸入格式
兩個數,M和N,中間用空格隔開。

輸出格式
共一行,一個十進制表示的式子。

輸入輸出樣例
輸入 #1
2 10101

輸出 #1
12^ 4+12^ 2+1*2^0

思路:
輸入用字串承接,再依次取用.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int m = input.nextInt();
        String n = input.next();
        System.out.printf("%c*%d^%d",n.charAt(0),m,n.length()-1);
        for (int i = 1; i < n.length();i++){
            if (n.charAt(i) != '0'){
                System.out.printf("+%c*%d^%d",n.charAt(i),m,n.length()-1-i);
                //冪爲從後往前數,故冪爲:長度-1-i;
            }

        }
    }
}

原題鏈接:https://www.luogu.com.cn/problem/P2084