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

Според мен направи една булева променлива която да пази дали е намерена еднаква сума в началото и задаи да е false а ако намери да я направи true и накрая направи проверка и изпечатай no.

1
Stefan77 avatar Stefan77 1 Точки

Наистина странно системата дава само 70 точки. Сложих булев отделен метод-функция,промених int във long и пак дава 70 точки. Ето моето решение  http://pastebin.com/jQRhvpr9

 

Подобрих кода и стигнах до 90точки. Грешката ни е била в неотчитане на граничните стойности. Например масив int[] nums={1 -1 3}; трябва да се пресметне

I.Случай:индекс nums[0] в който LeftSum=0,rightSum=-1+3;

 II.Случай индекс nums[1] в който leftSum=1 a rightSum=3 ,

III. Случай индекс nums[2] в който leftSum=1-1 ,a rightSum=0;//izvan nums.Length-1

Колегата е пропуснал 3-тия случай,но въпреки това дава 90 точки. Ето кода:http://pastebin.com/gkR8NV8r

 

0
07/06/2016 19:12:55
TeodorDimitrov89 avatar TeodorDimitrov89 266 Точки

Идеята ми беше такава: 

Един основен for-цикъл и вътре един за лявата сума и една за дясната сума и накрая една проверка дали има равни суми и ако няма да изпечата no.

http://pastebin.com/EERddRjQ 

1
Stefan77 avatar Stefan77 1 Точки

Това съм направил и аз.

0
AntyfrizZz avatar AntyfrizZz 238 Точки

Здравей,

 

Няма нужда да въртиш постоянно цикли на ляво и на дясно.

Тук обяснявам как може да се реши с един цикъл и един помощен масив 2 на 2. Подчертавам, че и с твоето решение ще ти даде 100/100, но може да погледнеш и това.

https://softuni.bg/forum/9823/11-equal-sums-chapter-arrays-exercises#answer-27728

 

Поздрави!

1