Софтуерно Инженерство
Loading...
+ Нов въпрос
IvanHristov1 avatar IvanHristov1 11 Точки

PHP Equal Sums - Задача 6 - 90 точки ?

Не мога да разбера защо не минава последния тест ... ????
<?php

$inputArr=explode(" ",readline());
$elements=count($inputArr);
$leftSum=null;
$rightSum=null;
$check=false;
if($elements <=1){
    echo '0';
    $check=true;
    exit;
}
for ($i = 0; $i <$elements-1 ; $i++) {
    $leftSum+=$inputArr[$i];
    $rightSum=array_sum($inputArr)-$leftSum-$inputArr[$i+1];
//    echo $leftSum. '->';
//    echo $rightSum;
//    echo PHP_EOL;
    if($leftSum == $rightSum){
        echo $i+1;
        $check=true;
        break;
    }
}
if(!$check){
    echo 'no';
    exit;
}
?>
Тагове:
0
Technology Fundamentals
Rossie21 avatar Rossie21 11 Точки
Best Answer

Здравей, 

Ето и моето решение с PHP, надявам се да е полезно: 

https://pastebin.com/wuJYbyK4

0
VasilK avatar VasilK 37 Точки

Привет,

Ето решение с java.

Тествай с 0, 0 -> 1

0 1, 1 0, 1 0 0, 0 0 1, 0 0 0 1 0 -> индекса на 1

import java.util.*;

public class Equal_Sum {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int[] arr = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(e -> Integer.parseInt(e)).toArray();
        
        for (int a = 0; a < arr.length; a++) {

            int sum_l = 0;
            int sum_r = 0;
            
            for ( int l = 0; l < a; l++) sum_l += arr[l];
            for ( int r = a + 1; r < arr.length; r++) sum_r += arr[r];
            
            if (sum_l == sum_r) {
                System.out.print(a);
                return;
            }

        }

        System.out.print("no");
    }
}

0
IvanHristov1 avatar IvanHristov1 11 Точки

И така опитах пак не става сега дава друга грешка :

<?php

$inputArr = explode(" ", readline());
$elements = count($inputArr);
$leftSum = null;
$rightSum = null;
$thirdElement = null;
$check = false;
$l = 0;
$r = 0;
$sum=array_sum($inputArr);

if ($elements <=1) {
    echo '0';
    exit;
}
for ($a = 0; $a < $elements - 1; $a++) {
    $sum_l = 0;
    $sum_r = 0;
    for ($l = 0; $l < $a; $l++) {
        $sum_l += $inputArr[$l];
    }
    for ($r = $a + 1; $r < $elements; $r++) {
        $sum_r += $inputArr[$r];

    }

    if ($sum_l == $sum_r) {
        echo $a;
        return;
    }


}

    echo "no";
0
iwanovw avatar iwanovw 6 Точки

Здравей, пробвай да прекъснеш цикъла с return, вместо break и виж да не ти печати и двата изхода. При мен това беше проблема за да грабна 100 точки. 

0