每日一道编程(20)

1017 A除以B

在这里插入图片描述

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        int n = in.nextInt();

        char[] ch = new char[1100];
        char[] ans = new char[1100];
        int k = 0;
        ch = s.toCharArray();
        int i;
        int a = 0, b = 0, sum = 0;

        //循环
        for (i = 0; i < ch.length; i++) {
            sum = a * 10 + (ch[i] - 48);  //字符与相应的数字的差是48 ASCII
            a = sum % n;
            b = sum / n;
            ans[k++] = (char) (b + 48);//强制转换为字符
        }
        if (ans[0] != '0') {
            System.out.print(ans[0]);
        }

        for (i = 1; i < k; i++) {
            System.out.printf("%c", ans[i]);
        }
        System.out.print(" " + a);


    }
}

说明:

1.运行超时,可能是转换的时候超时了。
2.这种大整数的处理要转换成字符串来处理进而转换成字符数组来处理。
3.类型转换要灵活应用,尤其是字符和整数之间的转换,比如整数1和字符1之间相差48,合理应用这种转换可以提高解题效率。

猜你喜欢

转载自blog.csdn.net/qq_41033299/article/details/89105969