Щастливи числа - решение с три вложени цикъла
Здравейте,
Целта е да намерим и отпечатаме всички четирицифрени числа от вида ABCD, за които: A+B = C+D. В книгата е посочен вариант с четири вложени цикъла, а след това се иска да измислим решение само с три, което аз лично не мога да го измисля и желая вашата помощ. Написах това: цък, но не смята както трябва, всички варианти на различно решение са добре дошли.
Недялко
Същите числа, който се получават при този код:
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.
Сигурен ли си, че е различна последователност? Мисля, че специално ги проверявах. Да не би да се губят от буфера по-малките комбинации, тъй като са дооооста резултатите. Просто нямам възможност в момента да ползвам visual studio да проверя пак, но мисля че като увеличих конзолния прозорец ми излизат още резултати, а от книгата, до колкото видях, дават началните стойности ( в началото на цикъла ), а при нас излизат последните.
Извинявай, моя грешка. Кода ти изпълва условието. Благодаря много!
Сега ми дойде на ум. Чудя се дали не е по-добре извън фор циклите да се декларира uint d = uint.MinValue и да се работи само с uint като по този начин ще се спести една проверка ( d >= 0 ) в най-вътрешния цикъл, тъй като очевидно няма как да е отрицателна всяка една от позициите на числата и ще се получи: