三个整数的舍入值之和

时间:2015-11-15 19:09:47

标签: java

编写一个读取3个整数的程序并打印出它们的舍入值之和。如果最右边的数字是5或更多,我们将每个值四舍五入到10的下一个倍数,所以15轮最多20个。或者,如果最右边的数字小于5,则向下舍入到前一个10的倍数,因此12轮向下舍入到10。

public static void main(String[] args) 
{
    Scanner scan = new Scanner(System.in);

    int x = scan.nextInt();
    int y = scan.nextInt();
    int z = scan.nextInt();
    int a = x%10;
    int b = y%10;
    int c = z%10;
    int sum = 0;

    if(a >= 5)
        a = 10;
    else
        a = 0;

    if(b >= 5)
        b = 10;
    else
        b = 0;

    if(c >= 5)
        c = 10;
    else
        c = 0;

    sum = x+y+z;

    System.out.println(sum);
}       

我知道这是错的,但我不知道如何纠正它。请帮忙!

3 个答案:

答案 0 :(得分:1)

您需要将xyz舍入为10的倍数。您的模数分别为abc。如果模数小于5,则可以减去它。如果模数大于或等于5,则需要将模数和十的差值与原始数字相加。所以你需要像(xyz),

if (a >= 5) {
    x += 10 - a;
} else {
    x -= a;
}

你可以表达为像

这样的三元组
x += (a >= 5) ? 10 - a : -a;
y += (b >= 5) ? 10 - b : -b;
z += (c >= 5) ? 10 - c : -c;

答案 1 :(得分:0)

您不应该修改ab,{{1},而不是修改cxy的值。 }?例如:

z

答案 2 :(得分:0)

更改两行:

int sum =  x - a + y - b + z - c;

sum += a + b + c;   

第一个将x,y,z减去整数位。第二个添加将整数位四舍五入为0或10的值。