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

[C# Advanced] Problem 12. Character Multiplication

Здравейте,

Тази задача съм я решавал със 100/100 и преди, но сега се опитвам да я реша по друг начин, който все си мисля, че е по-добър обаче не минава един от тестовете в Judge-a. Ако някой може да ме светне защо греша на последния тест, ще съм много благодарен.

Това е най-простото решение и дава 100/100;

А това е новото решение дето дава само 80/100;

Блаогдаря предварително!

Тагове:
0
C# Advanced 11/06/2017 16:23:52
kolioi avatar kolioi 395 Точки

Не знам какво е условието на задачата, но доколкото разбирам от кода (който дава 100/100 точки) трябва да намериш сумата от произведението на съответните елементи в двата масива, след което да добавиш сумата от оставащите числа в по-дългия масив. Формулирана по този начин, задачата има много лесно решение: просто допълваш по-късия масив с единици (числото 1) и намираш сумата от съответните произведения в един цикъл.

Предишния ми коментар може да го игнорираш, сега разбрах какво прави програмата. Ako str1 е по-дългия стринг, може да напишеш всичко в един цикъл така

long sum = 0;
for (int i = 0; i < str1.Length; i++)
{
    if (i < str2.Length)
    {
        sum += str1[i] * str2[i];
    }
    else
    {
        sum += str1[i];
    }
}

А ако str1 е по-късия от двата, може да ги размениш например така

if (str1.Length < str2.Length)
{
    string temp = str1;
    str1 = str2;
    str2 = temp;           
}

Извинявам се за недоразумението с предишния ми коментар.

0
09/06/2017 19:21:45
maya.peneva avatar maya.peneva 18 Точки

Сплитването ти е проблема. Пробвах с обичайното: Console.ReadLine().Split() и стана 100/100 :)
Сумата и числата няма нужда да са long.

0
AsenCME avatar AsenCME 9 Точки

Благодаря на двамата, които ми се притекоха на помощ! Помогнахте ми!

0