Loading...
mitko94 avatar mitko94 1 Точки

Nested Loops More Exercises - 12. The song of the wheels

Здравейте,

ако може някой по-напред с материала да ми помогне с тази задача.В judge ми дава 80/100 и не разбирам кое условие пропускам.Намерих и друго решение в интернет което е написано малко по-различно от моя код и минава 100/100 в judge, дебъгвах и двете и не виждам никаква разлика. 

Песента на колелетата
Прапраправнукът на Сали Яшар е получил наследство - сейф с парола - четири цифри. В него е заключена тайната на пеещите каруци. Той има автосервиз и се нуждае от реклама, затова е решил да направи такава каруца. Проблема е, че паролата е скрита в следната задача:
„Парола ще получиш, ако знаеш  едно цяло число, контролна стойност  се нарича то,
почива в интервала от 4 до 144 включително, но да го откриеш може би ще е мъчително. ”
Паролата има формат: „abcd“ и контролната стойност трябва да е равна на  a*b + c*d , но трябва да бъдат спазени следните условия:
при намирането на а и b: a < b
при намиране на  c и d: c > d .
Каруцата  има четири колела, затова паролата ще е четвърто число, което трябва да се отпечата.
В случай, че НЕ се намери такова число,  отпечатва се „No!“.
Вход
От конзолата се четe едно цяло число (контролната стойност): M – цяло число в интервала [4 … 144];
Изход
Отпечатването на конзолата зависи от резултата:
Ако са намерени четворки числа (аbcd), отговарящи на условието, ги отпечатваме всичките с разделител интервал: “{а}{b}{c}{d} ”
Отпечатва се един от двата реда на нов ред:
Ако съществува четвърта четворка се отпечатва: „Password: {а}{b}{c}{d}“
Ако НЕ са намерени такива числа или няма  четвърта четворка отпечатваме: “No!”

 

Ето го моят код:

using System;

namespace _12._The_song_of_the_wheels
{
    class Program
    {
        static void Main(string[] args)
        {
            int controlValue = int.Parse(Console.ReadLine());
            int count = 0;
            bool fourth = false;
            int i = 0;
            int j = 0;
            int k = 0;
            int l = 0;
            bool trueRow = false;
            for (int a = 1; a <= 9; a++)
            {
                for (int b = 1; b <= 9; b++)
                {
                    for (int c = 1; c <= 9; c++)
                    {
                        for (int d = 1; d < 9; d++)
                        {
                            if (a * b + c * d == controlValue && a < b && c > d)
                            {
                                trueRow = true;
                                count++;
                                Console.Write($"{a}{b}{c}{d} ");

                                if ((a == 4 || b == 4 || c == 4 || d == 4) && (count == 4))
                                {
                                    fourth = true;
                                    i = a;
                                    j = b;
                                    k = c;
                                    l = d;
                                }
                                
                            }


                        }
                    }
                }
            }
            if (trueRow)
            {
                Console.WriteLine();
            }
            if (fourth)
            {
                
                Console.WriteLine($"Password: {i}{j}{k}{l}");
            }
            else
            {
                
                Console.WriteLine("No!");
            }

        }
    }
}
 

Тагове:
0
Programming Basics 08/06/2019 19:58:23
knoteva avatar knoteva 1081 Точки

Здравей,

Не знам защо си сложил и че някоя от цифрите трябва да е равна на 4((a == 4 || b == 4 || c == 4 || d == 4)). Без тази проверка ти дава 100 точки.

Освен това трябва да е d <= 9

  • Ако съществува четвърта четворка се отпечатва: „Password: {а}{b}{c}{d}“Не зна
0
08/06/2019 20:43:10
mitko94 avatar mitko94 1 Точки

Благодаря, видях още в условието съм се объркал но с примерните входове ми даваше правилен изход и затова търсих грешката другаде.

1
s.boyadjiev avatar s.boyadjiev 9 Точки

И аз закъсах на тази. 90/100 и вече не сещам какво да опитам. Решението ми е това:
https://pastebin.com/j4bLRuix

П.С.
пробвах да печатам паролата и като string и int и резултатът всеки път е този. Някой може ли да помогне?
Благодаря!!!

0
nedka_sotirova avatar nedka_sotirova 0 Точки

@s.boyadjiev, вероятно причината за грешката ти е, че всичките ти цикли започват от нула, вместо от 1. Не се разбира от условието на задачата, но от обяснението на примерния вход/изход се вижда, че нулата не я включват като възможна цифра в паролата.... Ако искаш пробвай!

0
Hvpetrow avatar Hvpetrow 11 Точки

Ето едно решение : https://pastebin.com/y7Yb2ZpS 

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