PHP - Multiply Evens by Odds
Здравейте!
Решавам задача № 9 "Multiply Evens by Odds" от темата за функциите и получавам runtime errors и 70/100. Програмата ми чете въведеното отрицателно число като string и ми дава минуса като "non-numeric value", но иначе принтира резултата. Как да поправя това? Моля за помощ
<?php
$number = readline();
function sumOfEvens($number) {
$evenSum = 0;
for ($i = 0; $i < strlen($number); $i++) {
if (($number[$i] % 2) == 0) {
$evenSum += $number[$i];
}
}
return $evenSum;
}
function sumOfOdds($number) {
$oddSum = 0;
for ($i = 0; $i < strlen($number); $i++) {
if (($number[$i] % 2) == 1) {
$oddSum += $number[$i];
}
}
return $oddSum;
}
function multiplyEvensbyOdds ($number){
sumOfEvens($number);
sumOfOdds($number);
$product = abs(sumOfEvens($number) * sumOfOdds($number));
echo $product;
return $product;
}
multiplyEvensByOdds($number);
?>
Здрасти! Благодаря ти! Бях пробвала така, но ми даваше като резултат 0. Предполагам, че е така заради strlen, което имам по-надолу (казвам му да върти до дължината на стринга, пък променливата горе съм я задала като integer, а не като стринг). Интересно е да разгледам и твоя начин на решаване. Благодаря!
Сега го реших. Зададох допълнително условие в if-конструкциите - ако символът е "-", да добавя 0 към сумата :)