Loading...
NedNikolov avatar NedNikolov 45 Точки

Щастливи числа - решение с три вложени цикъла

   Здравейте, 
 Целта е да намерим и отпечатаме всички четирицифрени числа от вида ABCD, за които: A+B = C+D. В книгата е посочен вариант с четири вложени цикъла, а след това се иска да измислим решение само с три, което аз лично не мога да го измисля и желая вашата помощ. Написах това: цък, но не смята както трябва, всички варианти на различно решение са добре дошли.
   Недялко

0
Programming Basics
RoYaL avatar RoYaL Trainer 6849 Точки

Не мисля, че има смисъл да въртиш d-то. Можеш да го получиш като извадиш от сбора на a+b, c-то. В смисъл като си на итерация в която a = 3, b = 2 и c = 1, очевидно, че d = 5 - 1 = 4

2
NedNikolov avatar NedNikolov 45 Точки

Вмъкнах това в цикъл "c"
                            int d = (a + b) - c;
                            Console.WriteLine(" " + a + " " + b + " " + c + " " + d);
, не се получи нищо, явно трябва да прочета отново главата за Цикли и след време да се опитам да измисля верен код, защото сега не мога.

0
remote87 avatar remote87 121 Точки

Само с това, което си вмъкнал няма да стане. Трябва ти проверка, дали d е по-голямо от 9 и съответно да не стане отрицателно число. Ако не се лъжа, това е решението:

            for (a = 1; a <= 9; a++)
            {
                for (b = 0; b <= 9; b++)
                {
                    for (c = 0; c <= 9; c++)
                    {
                        d = (a + b) - c;
                        if ((d <= 9) && ((a + b) == (c + d)) && (d >= 0) )
                        {
                            Console.WriteLine(" " + a + " " + b + " " + c + " " + d);
                        }                     
                    }
                }
            }

Не е пред мен условието на задачата и това решение е само по твоето обяснение. Дано съм разбрал правилно :)
Успех!

1
NedNikolov avatar NedNikolov 45 Точки

Същите числа, който се получават при този код:

for (int a = 1; a < 5; a++)
            {
                for (int b = 1; b < 5; b++)
                {
                    for (int c = 1; c < 5; c++)
                    {
                        for (int d = 1; d < 5; d++)
                        {
                            Console.WriteLine(" " + a + " " + b + " " + c + " " + d);
                        }
                    }
                }
            }
, трябва да се получат но само с три цикъла. Твоя код дава различна последователност от числа, следователно нещо трябва да се бутне, аз не мога да го измисля. 

П.С. Условието е в края на глава цикли в книгата, ако я имаш на електронен вариант е на страница 235.

0
remote87 avatar remote87 121 Точки

Сигурен ли си, че е различна последователност? Мисля, че специално ги проверявах. Да не би да се губят от буфера по-малките комбинации, тъй като са дооооста резултатите. Просто нямам възможност в момента да ползвам visual studio да проверя пак, но мисля че като увеличих конзолния прозорец ми излизат още резултати, а от книгата, до колкото видях, дават началните стойности ( в началото на цикъла ), а при нас излизат последните.

1
NedNikolov avatar NedNikolov 45 Точки

Извинявай, моя грешка. Кода ти изпълва условието. Благодаря много!

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