PAT B1022 java

下面这个是偷懒版:

从该处看到,觉得甚是巧妙,转载地址如下:

https://blog.****.net/TonyHTY/article/details/102555263

解决方法二:

正常思路版:

首先将A+B的和存在c里面,然后d进制;c%d得到的余数暂存在temp,每次得到的余数存在output里面,然后c=c/d;更新被除数。当被除数为0的时候,计算结束。

定义一个String类型的字符串output,用来存d进制下的余数,这样可以直接输出。

注意事项:在d进制中,当商为0的时候,调出循环,可以用while循环。

代码如下:
import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
    public static void main(String args[]) throws IOException {
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String str[]=bf.readLine().split(" ");
        int a=Integer.parseInt(str[0]);
        int b=Integer.parseInt(str[1]);
        int d=Integer.parseInt(str[2]);
        int c=a+b;
        String output="";
        int temp;
        while (true){
            temp=c%d;
            c=c/d;
            output=temp+output;

            if(c==0){
                System.out.println(output);
                break;

            }

        }


    }// main
}

 

运行截图:

PAT B1022 java