Java语言怎么做这道题

https://ac.nowcoder.com/acm/problem/22006 牛客网上的一道题 四舍五入

while (true){
            System.out.print("请输入(输入-1结束):");
            Scanner in = new Scanner(System.in);
            String next = in.next();
            if (next.equals("-1")){
                break;
            }
            Integer[] szNum = new Integer[next.length()];
            for (int a = 0; a < next.length(); a++){
                szNum[a] = Integer.parseInt(next.substring(a, a + 1));
            }
            for (int x = szNum.length - 1; x > -1; x--){
                if (szNum[x] > 4 && x > 0){
                    szNum[x - 1] = szNum[x - 1] + 1;
                    szNum[x] = 0;
                }else{
                    if (x == szNum.length - 1){
                        szNum[x] = 0;
                    }
                    break;
                }
            }
            String num = "";
            for (Integer integer : szNum) {
                num += integer;
            }
            System.out.println(Arrays.toString(szNum));
            System.out.println("最终数字:" + num);
        }

试下这个,可以在int数值的范围内无线向上四舍五入

转字符串取最后一位,然后转成数字判断大于4还是小于等于4

大于4源数字 + 10 - 个位数

否则直接 - 个位数

int result  = (n/10 + (n%10 < 5 ? 0 : 1)) * 10;

第一次看错题了。。

public static void main(String args[]) {
        int num = new Random().nextInt(1000000000);
        int result;
        String numStr = num + "";
        String lastNumStr = numStr.substring(numStr.length() - 1);
        int lastNum = Integer.parseInt(lastNumStr);
        if (lastNum > 4) {
            result = num + 10 - lastNum;
        } else {
            result = num - lastNum;
        }
        System.out.println("随机数:" + num);
        System.out.println("四舍五入结果:" + result);
}

 

代码如下 :如有帮助,请采纳一下,谢谢。

int func(int d)
{
	int s = d % 10;
	int ss = d - s;
	if(s >= 5)
		return ss + 10;
	else
		return ss;
}