2015-04-17 2 views
-9

По этой проблеме мы округлим значение int до следующего кратного 10, если его самая правая цифра равна 5 или более, поэтому 15 раундов до 20. В качестве альтернативы, округлите до предыдущего кратное 10, если его самая правая цифра меньше 5, поэтому 12 раундов до 10. Учитывая 3 int sa, b и c, верните сумму их округленных значений. Чтобы избежать повторения кода, напишите отдельный помощник public int round10(int num) { и назовите его 3 раза. Напишите помощника целиком ниже и на том же отступе, что и roundSum().Я не могу решить это в java

roundSum (16, 17, 18) → 60
roundSum (12, 13, 14) → 30
roundSum (6, 4, 4) → 10

Я решил эту проблему, как этот :

public int roundSum(int a, int b, int c) { 
    return round(a)+round(b)+round(c);  
} 

public int round(int n){ 
    int A=0; 
    int D=n%10; 
    if (D>4) 
    A=n/10*10 +10; 
    if(D<5) 
    A=n/10*10; 
    return A; 
} 

Но после компиляции он говорит:

 
Error: public introundSum(int a, int b, int c) { 
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
Return type for the method is missing 

чем проблема? спасибо.

+4

Вы забыли пробел между «Int» и «roundSum» в 'общественном introundSum (Int, Int а б, внутр гр)' – Constant

ответ

3

Довольно простой: неправильный синтаксис. public introundSum(...){ должно быть действительно public int roundSum(...){. Поскольку вы комбинировали returntype и methodname в одно слово, java читает его как метод с именем introundSum и без возвращаемого типа.

4
public introundSum(int a, int b, int c) { 

Вы пропустили пробел там:

public int roundSum(int a, int b, int c) { 
//  /\ 

Возвращение типа был частью имени метода, поэтому Java жаловался, что вы не имели тип возвращаемого значения.

+0

В первом моем ответе я не понимал, что он должен был чтобы быть 'int roundSum' и предложил сделать его' int introundSum', я неправильно понял: P. Исправлено это сейчас. –

+0

Ну, ваш ответ по-прежнему оставался в силе, поскольку он заставлял парня найти, что случилось. После этого это просто проблема с именами. – Tarik

+0

Что такое проблема с именами? Я не понимаю ниспроверки, пожалуйста, объясните? –

0

Вам необходимо добавить тип возврата к вашему методу, в данном случае int после public в методе. Как это:

public int roundSum(int a, int b, int c){ .... } 
+1

Г-н downvoter, пожалуйста, объясните! – Tarik

+1

Я не спускал вниз, но имейте в виду, что ответы, содержащие пояснения, обычно более ценны, чем ответы, содержащие только одну строку кода. – TNT

Смежные вопросы