![](/img/trans.png)
[英]Write a program to find sum of squares of all numbers given the following conditions?
[英]Write a program to round a number to the next multiple of 10 given the following conditions?
編寫一個程序,將一個數字舍入到10的下一個倍數,如果它的個位數是5或更多,否則將它的前一個倍數舍入為10.So,25和26舍入到30,其中23和24輪到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
如果余數小於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;
}
您還可以將sumRounded
實現為帶有for-each
循環的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
}
如果你想修復你的方式,請執行以下操作,但Exbury的答案是一種較短的方法。
只需使用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);
您只需將以下代碼放入chexkRound方法即可
int a = num % 10;
if ((a >= 5) && (a <= 9)) {
num = 10 * (num / 10 + 1);
} else {
num = 10 * (num / 10);
}
return num;
以下代碼完全符合您的需求
//代碼開始
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;
}
//代碼結束
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.