Loading...
k_aleksiev avatar k_aleksiev 6 Точки

Special Numbers. Защо ако поставя променливата над for цикъла този кода не работи коректно

Здравейте. Така кода работи вярно, но бях поставил  int sumOfDigits = 0; над for цикъла и тогава кода не работеше коректно. Като  е над         for - а  доколкото знам  може да се ползва за всичко надолу, защо тогава не работеше  ? 

int number = int.Parse(Console.ReadLine())   

           for (int i = 1; i <= number; i++)

            {

                int sumOfDigits = 0;

                int digits = i;

                while (digits > 0)

                {

                    sumOfDigits += digits % 10;

                    digits = digits / 10;

                }

                bool isSpecialNumber = (sumOfDigits == 5 || sumOfDigits == 7 || sumOfDigits == 11);

                Console.WriteLine($"{i} -> {isSpecialNumber}");

Тагове:
0
Module: C# Advanced
NonaG avatar NonaG 111 Точки
Best Answer

Защото на всяко следващо число i ти трябва сумата от цифрите му да е 0 в началото на натрупването на стойността в нея. Като я  изкараш извън for, сумата се натрупва за всяка цифра на всяко число i до края на целия for.

0
kalinamomkova avatar kalinamomkova 26 Точки

Здравей, най вероятно, защото при всяка итерация на for цикъла променливата sumOfDigits е равна на нула. Ако въпросната променлива се намира над for цикъла то тя не би била равна на нула при всяка итерация на цикъла, а ще пази натрупаната сума от всички итерации до момента. За да ти е равна на нула просто ще трябва да го зададеш в цикъла. Т.е

int number = int.Parse(Console.ReadLine())   

int sumOfDigits;

           for (int i = 1; i <= number; i++)

            {

                sumOfDigits = 0;

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