Напишіть окремий хелпер "public int fixTeen(int n) {" , що приймає int значення та повертає відповідь згідно правилу. Внаслідок цього зникає необхідність дублювати код 3 рази ("декомпозиція").
Приклад виведення:
noTeenSum(1, 2, 3) → 6
noTeenSum(2, 13, 1) → 3
noTeenSum(2, 1, 14) → 3
Розв"язок:
public int fixTeen(int n) {
if (n < 13 || n > 19 || n == 15 || n == 16)
return n;
return 0; }
public int noTeenSum(int a, int b, int c) {
public int noTeenSum(int a, int b, int c) {
return (fixTeen(a) + fixTeen(b) + fixTeen(c));
}
2. Дано рядок. Повернути суму значень 0-9, що наявні в рядку, не враховуючи всі інші значення. Повернути "0", якщо цифр в рядку нема взагалі.
Приклад виведення:
sumDigits("aa1bc2d3") → 6
sumDigits("aa11b33") → 8
sumDigits("Chocolate") → 0
Розв"язок:
public int sumDigits(String str) {
int sum = 0;
int lim = str.length();
char ch;
for (int i = 0; i < lim; i++) {
ch = str.charAt(i);
if (Character.isDigit(ch)) // or simply (ch >= '0' && ch <= '9')
sum += (ch - '0');
}
return sum;
}
Немає коментарів:
Дописати коментар