Loading...
krakena99 avatar krakena99 2 Точки

Тия задачи нещо не ги разбирам?

Здравейте, Programming Basics свърши и реших да решавам миналите приемни изпити, като упражнение.

Проблема е, че винаги последните задачи са от един тип и не ги разбирам. Състоят се от много цикли и числа :D

 

Ето пример за задача, която току що се пробвах да реша: https://judge.softuni.bg/Contests/Practice/Index/179#5 (задача 06.)

Моето неуспешно решение: https://docs.google.com/document/d/1ttLXTPadnNpeBm6xghoA3GMb9Q4iWleD-j6MBLUAaSk/edit?usp=sharing

 

Какво правя грешно и някой може ли да ми прати обяснение?

Тагове:
0
Programming Basics
bubalik avatar bubalik 33 Точки

Ето и на С#:

using System;


namespace Magic_numbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int x = 1;
            string print = "";

            for (var i1 = 1; i1 < 10; i1++)
            {
                for (var i2 = 1; i2 < 10; i2++)
                {
                    for (var i3 = 1; i3 < 10; i3++)
                    {
                        for (var i4 = 1; i4 < 10; i4++)
                        {
                            for (var i5 = 1; i5 < 10; i5++)
                            {
                                for (var i6 = 0; i6 < 10; i6++)
                                {
                                    x = i1 * i2 * i3 * i4 * i5 * i6;
                                    if (x == n)
                                    {
                                        print = print + i1 + i2 + i3 + i4 + i5 + i6 + " ";
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Console.WriteLine(print);
        }
    }
}
 

0
bubalik avatar bubalik 33 Точки

Проверките за числото се правят в най-вътрешния цикъл.

0
RifatCholakov avatar RifatCholakov 53 Точки

Решението на задачата за магическите числа следва същата концепция (отново трябва да генерираме всички комбинации за n елемента). Следвайки тези стъпки, опитайте да решите задачата сами.

  • Декларирайте и инициализирайте променлива от целочислен тип int и прочетете входа от конзолата.
  • Вложете шест for цикъла един в друг, по един за всяка цифра на търсените 6-цифрени числа.
  • В последния цикъл, чрез if конструкция проверете дали произведението на шестте цифри е равно на магическото число.

В предходната глава разгледахме и други циклични конструкции. Нека разгледаме примерно решение на същата задача, в което използваме цикъла while. Първо трябва да запишем входното магическо число в подходяща променлива. След това ще инициализираме 6 променливи - по една за всяка от шестте цифри на търсените като резултат числа.

След това ще започнем да разписваме while циклите.

  • Ще инициализираме първата цифраd1 = 0.
  • Ще зададем условие за всеки цикъл: цифрата да бъде по-малка или равна на 9.
  • В началото на всеки цикъл задаваме стойност на следващата цифра, в случая: d2 = 0. При вложените for цикли инициализираме променливите във вътрешните цикли при всяко увеличение на външните. Искаме да постигнем същото поведение и тук.
  • В края на всеки цикъл ще увеличаваме цифрата с едно: d++.
  • В най-вътрешния цикъл ще направим проверката и ако е необходимо, ще принтираме на конзолата.

Нека премахнем if проверката от най-вътрешния цикъл. Сега, нека инициализираме всяка променлива извън циклите и нека изтрием редовете dx = 0. След като стартираме програмата, получаваме само 10 резултата. Защо? А ако използвате do-while? В случая този цикъл не изглежда подходящ, нали? Помислете защо. Разбира се, можете да решите задачата и с помощта на безкраен цикъл.

Както виждаме, един проблем можем да решим с различни видове цикли. Разбира се, за всяка задача има най-подходящ избор. С цел да упражните всеки цикъл - опитайте се да решите всяка от следващите задачи с всички изучени цикли.

 

Прочети тове ще ти е много полезно - https://csharp-book.softuni.bg/chapter-07-complex-loops-exam-problems.html#задача-магически-числа

0
29/11/2017 13:31:01
krakena99 avatar krakena99 2 Точки

Благодаря на всички отговорили, ще си проверя и поправя задачата по-късно.

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