Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace _05Problem_SpecialNumbers
- {
- class Program
- {
- static void Main(string[] args)
- {
- //Четем числото, което в случая ни се пада максималното число което трябва да обработим.
- int inputNumber = int.Parse(Console.ReadLine());
- // Създаваме си две променливи: sum и divider
- // В sum ще пазим сумата на цифрите на вмомента обработващото се число,
- // а divider ще бъде използван във втория цикъл като променлив делител според цифрите на вмомента обработващото се число
- int sum = 0;
- int divider;
- // Пускаме един цикъл от 1 до максималното число (това, което прочетохме в началото)
- for (int currentNumber = 1; currentNumber <= inputNumber; currentNumber++)
- {
- // Get-ваме си дължината на числото, което обработваме в момента и го записваме в currentNumberLength
- // за да го използваме като крайна итерация на вложения цикъл.
- string currentNumberLength = currentNumber.ToString();
- // За да не стават грешки, на всяко ново обработващо се число зачистваме сумата от цифрите на това преди него
- // и слагаме началната стойност на променливия ни делител
- sum = 0;
- divider = 10;
- // Във втория ни цикъл (вложения) въртим от 1 до цифрите на числото, което обработваме вмомента
- // Пример - Ако числото ни е 5 въртим от 1 до 1 (тоест 1 път).
- // Ако числото ни е двуцифрено, пример 38 въртим от 1 до 2 (тоест 2 пъти)
- // Ако числото ни е трицифрено например 123, въртим от 1 до 3 (тоест 3 пъти) и т.н
- // За да обработим всяка цифра на числото поотделно и да добавим стойността и в sum променливата
- for (int currentDigit = 1; currentDigit <= currentNumberLength.Length; currentDigit++)
- {
- // Тук влизаме само, ако числото ни е едноцифрено или е двуцифрено, но искаме да обработим само първата му цифра
- if (currentNumber < 10 || currentDigit == 1)
- {
- sum += currentNumber % 10;
- continue;
- }
- // Тук намираме цифрите на числото с изключение на първата
- sum += (currentNumber / divider) % 10;
- // И след всяка цифра делителя ни скача с *10, за да намерим следващата цифра на числото
- divider *= 10;
- }
- // Ако сумата на чифрите на числото, което се е обработвало в дадения момент е равна с условиеето в if-конструкцията
- // печата числото и true.
- if ((sum == 5) || (sum == 7) || (sum == 11))
- {
- Console.WriteLine($"{currentNumber} -> True");
- }
- // В противен случай, числото и false.
- else
- {
- Console.WriteLine($"{currentNumber} -> False");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement