题解 | 特别的除法

特别的除法

https://www.nowcoder.com/practice/affc25dc61cf416e9c7a4eb29dec5b42

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt();
        int integer = a / b, remainder = a % b;
        List<Integer> decimal = new LinkedList<>();
        for (int i = 0; i <= c; i++) {
            remainder *= 10;
            decimal.add(remainder / b);
            remainder %= b;
        }
        int carry = decimal.get(c) >= 5 ? 1 : 0;
        decimal.remove(c);
        for (int i = c - 1; i >= 0; i--) {
            int digit = decimal.get(i) + carry;
            decimal.set(i, digit % 10);
            carry = digit / 10;
        }
        if (carry > 0) integer++;
        System.out.print(integer + ".");
        decimal.forEach(System.out::print);
        sc.close();
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务