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

Combinations/Nested Loops/C#

Здравейте, колеги,

Дали можете да предположите защо при този код хващам само числата до 100 000/хванах го като сложих брояч на първия цикъл/.

Благодаря предварително!

 

Условието е:

5. Комбинации

Напишете програма, която изчислява колко решения в естествените числа (включително и нулата) има
уравнението:
x1 + x2 + x3 + x4 + x5 = n
Числото n е цяло число и се въвежда от конзолата.

 

Моят код е:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Combination
{
    class Program
    {
        static void Main(string[] args)
        {

            int result = int.Parse(Console.ReadLine());
            int counter = 0;
            int counterall = 0;

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    for (int k = 0; k < 10; k++)
                    {
                        for (int l = 0; l < 10; l++)
                        {
                            for (int m = 0; m < 10; m++)
                            {
                                //counterall++;
                                if (i+j+k+l+m==result)
                                {
                                    counter++;
                                }
                            }
                        }
                    }
                }
               
            }
            Console.WriteLine(counter);
            //Console.WriteLine(counterall);

        }
    }
}

 

Тагове:
0
Programming Basics
The_assassin avatar The_assassin 158 Точки

Здравей!

Трябва да е <= 10.

корекция:

<= result

0
23/11/2018 07:51:38
krum_43 avatar krum_43 756 Точки

За n ли имаш на предвид?

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

рябва да е <= 10. това не е така 10 не е просто число. А условието ми се струва непълно. какво ще е числото което ви подават. А стига до 10000 защото върти 5 цикъла това е нормално.

0
krum_43 avatar krum_43 756 Точки

От къде стигна до извода,че n трябва да е просто?Няма значение какво е.А че условието не е пълно и неточно няма спор.Много от условията на задачите(от модула основи на програмирането) са неточни и не определят еднозначно някаква логика.Трябва задължително да се проследят и примерите.Наков много пъти е споменавал,че е участвувал и печелил международни награди,но ако там дадат подобни многозначни условия ..................

 

 

 

0
yvette avatar yvette 4 Точки

i<=n(result)   и така надолу във всички цикли.

Логиката е такава : 

  i + j + k + l + m = result

result + 0 + 0+ 0 + 0 = result

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

 

 

1
22/11/2018 18:56:59
popopo avatar popopo 1 Точки

Извинявай, не те разбрах, би ли ми обяснила още ведниж?

Благодаря предварително

0
yvette avatar yvette 4 Точки

В условията на циклите си ограничила i,j,k,l,m само до 10 (i<10). Не знам от къде си стигнала до това 10, ноо то не е правилно, защото ограничаваш възможните комбинации.

Трябва i <= result , за да се проверят всички случаи... част от случаите включват  i  да е равно на резултата, а  j,k,l,m да са равни на 0. Но като го ограничаваш така до 10 ще получиш само част от отговорите... Не знам как иначе да го обясня.. напиши си уравнението.. да речем се въвежда резултат 20 и трябва да провериш възможните комбинации, които дават този резултат... първата от тях е : 20(i) + 0(j) + 0(k) + 0(l) + 0(m) = 20... но като ограничаваш i до 10, няма как да стигнеш до тази комбинация... пиши ако не си ме разбрала да пратя кода :)

0
23/11/2018 10:21:21
kolioi avatar kolioi 641 Точки

Много добре! А трябва ли всеки цикъл да го въртим до n? Я помисли. Така не е грешно, но може да си спестим малко излишни сметки (и време). Например, ако n=20 и сме стигнали до i=5, j=3, k=6, l=4  има ли смисъл да променяме m от 0 до 20 или може да го ограничим само до 2?

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