编写一个程序,将数字舍入为10的下一个倍数,如果其数字为5或更多,否则将其前一个倍数除以10.So,25和26舍入为30,其中23和24舍入为20 .20也是20轮。你已经获得了4个整数作为输入。舍入每个输入值并返回它们的总和。
MyApproach
我在第一个函数中创建了2个函数,我计算了所有4个数字的总和。
在第二个函数中,我检查了UnitDigtit,如果> = 5&&< = 9然后继续问题中给出的一组语句。
否则
我检查了它是一个数字还是两个数字或任何数字。如果一个数字我返回num = 0否则我继续使用这些语句集。
sumRounded(11,15,23,30)
80(11轮到10,15到20,23到20和30到30)
sumRounded(1,3,7,9)
20
public int sumRounded(int num1, int num2, int num3, int num4)
{
int a=checkRound(num1);
int b=checkRound(num2);
int c=checkRound(num3);
int d=checkRound(num4);
return a+b+c+d;
}
public int checkRound(int num)
{
int a=num%10;
if((a>=5) &&(a<=9))
{
if(a==5)
{
num=num+5;
}
else if(a==6)
{
num=num+6;
}
else if(a==7)
{
num=num+7;
}
else if(a==8)
{
num=num+8;
}
else if(a==9)
{
num=num+9;
}
return num;
}
else
{
if((num/10)!=0)
{
if(a==1)
{
num=num-1;
}
else if(a==2)
{
num=num-2;
}
else if(a==3)
{
num=num-3;
}
else if(a==4)
{
num=num-4;
}
return num;
}
else
{
return num=0;
}
}
}
结果:
Parameters Actual Output Expected Output
'289' '3' '25' '308' 644 630
答案 0 :(得分:4)
如果余数小于5,则从num
中减去它。否则,将余数减去余数num
。像,
static int checkRound(int num) {
int rem = num % 10;
return rem < 5 ? num - rem : num + (10 - rem);
}
或使用Math.round(float)
之类的
static int checkRound(int num) {
return Math.round((float) num / 10) * 10;
}
您还可以使用for-each
loop
sumRounded
实现为varargs方法
static int sumRounded(int... nums) {
int sum = 0;
for (int num : nums) {
sum += checkRound(num);
}
return sum;
}
然后你可以测试它,
public static void main(String[] args) {
System.out.println(sumRounded(11, 15, 23, 30)); // == 80
System.out.println(sumRounded(1, 3, 7, 9)); // == 20
}
答案 1 :(得分:1)
如果你想修复你的方式,请执行以下操作,但Exbury的答案是一种较短的方法。
答案 2 :(得分:1)
只需使用checkRounded方法
中的提醒检查int number = 23;
int output=0;
if(number%10<5){
output=(number/10)*10;
}
else{
output=((number/10)+1)*10;
}
System.out.println(output);
答案 3 :(得分:1)
您只需将以下代码放入chexkRound方法
即可 int a = num % 10;
if ((a >= 5) && (a <= 9)) {
num = 10 * (num / 10 + 1);
} else {
num = 10 * (num / 10);
}
return num;
答案 4 :(得分:0)
以下代码完全符合您的需求
//代码开始
public static void main(String[] args) {
System.out.println("The answer is: " + getSum(2,5,19));
}
public static int getSum(int... nums) {
int sum = 0;
for (int n : nums) {
int lastDigit = n % 10;
if (lastDigit >= 5) {
sum = sum + n + (10 - (lastDigit));
} else {
sum = sum + 10 * (n / 10);
}
}
return sum;
}
//代码结束