Loading...
Iskren.1990 avatar Iskren.1990 6 Точки

Python/Javascript 04. Equal Sums Even Odd Position Nested Loops - Exercise

Здравейте,

3 теста ми дажат тайм лимит. Решавал съм я и на JS с малко по-различна логика(един цикъл по-малко), но не виждам причина

двете решения да дават различен резултат.

Python:

num_uno = int(input());
num_due = int(input());
combinations = "";
for i in range(num_uno, num_due+1):
    sum_n = 0;
    sum_c = 0;
    for a in range(6):
        b = str(i)
        if(a % 2 == 0):
            sum_n += int(b[a]);
        else:
            sum_c += int(b[a]);
    if (sum_c == sum_n):
        combinations += f"{i} ";
print(combinations);

 

Javascript:

function solve(input) {
    let firstN = Number(input[0]);
    let secondN = Number(input[1]);
    let result = ``;
    let sumCc = 0;
    let sumNh = 0;
    for (let currNum = firstN; currNum <= secondN; currNum++) {

        let num = currNum.toString();
        sumCc = Number(num[0]) + Number(num[2]) + Number(num[4]);
        sumNh = Number(num[1]) + Number(num[3]) + Number(num[5]);
        if (sumCc === sumNh)
        result += `${num} `;

    }
    console.log(result);
}

Тагове:
0
Programming Basics 19/10/2019 20:18:44
mark79 avatar mark79 639 Точки

Здравей,

ето ти една по-различна логика

num1 = int(input())
num2 = int(input())

for i in range(num1, num2 + 1):
    first_digit = i % 10
    second_digit = i // 10 % 10
    third_digit = i // 100 % 10
    fourth_digit = i // 1000 % 10
    fifth_digit = i // 10000 % 10
    sixth_digit = i // 100000 % 10

    even_sum = first_digit + third_digit + fifth_digit
    odd_sum = second_digit + fourth_digit + sixth_digit

    if even_sum == odd_sum:
        print(i, end=" ")

Поздрави

0
19/10/2019 20:35:33
Iskren.1990 avatar Iskren.1990 6 Точки

Здравей колега, благодаря за отговора, но въпросът ми беше по скоро къде греша. Отделно задачата е в раздел вложени цикли, предполага се, че трябва с такива да бъде решена.

 

Ииии мн мерси за този "end=" мн готино :D

0
19/10/2019 19:46:45
mark79 avatar mark79 639 Точки

Здравей,

перефразирам с вложени цикли .. незнам дали минава, защото реално пак цикли за всяка стойност, но без да се разхождаш до string и обратно.

num1 = int(input())
num2 = int(input())

for i in range(num1, num2 + 1):
    even_sum = 0
    odd_sum = 0
    k = 1
    for j in range(6):
        digit = i // k % 10
        k *= 10
        if j % 2 == 0:
            even_sum += digit
        else:
            odd_sum += digit

    if even_sum == odd_sum:
        print(i, end=" ")

Поздрави

0
19/10/2019 20:39:21
Iskren.1990 avatar Iskren.1990 6 Точки

Благодаря за усилието колега, но дава същите грешки като моите. Тоест не грешки а достига тайм лимит на 7, 9 и 10 тест.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.