/// <task_description> /// 5. Modify the previous program such that only multiples of three /// or five are considered in the sum, e.g. 3, 5, 6, 9, 10, 12, 15 for n=17 /// <previous> 4. Write a program that asks the user for a number n and prints /// the sum of the numbers 1 to n</previous> /// </task_description> public override void ExerciseRun() { long sum = 0; int number = ServiceClass.InputPositiveIntegerNumber(); long RestrictedFactorial(int num) { if (num == 1) { return(0); } if (num % 3 == 0 || num % 5 == 0) { sum = num + RestrictedFactorial(num - 1); } else { sum = RestrictedFactorial(num - 1); } return(sum); } for (int i = number; i > 0; i--) { if (i % 3 == 0 || i % 5 == 0) { sum += i; } } Console.WriteLine($"sum of numbers from 1 to {number}, such that only multiples of three or five = {RestrictedFactorial(number)}"); }
/// <task_description> /// 6.Write a program that asks the user for a number n and gives them /// the possibility to choose between computing the sum and computing /// the product of 1,…,n. /// </task_description> public override void ExerciseRun() { var choiсe = AskSumOrProduct.Ask(); int number; switch (choiсe) { case "s": Console.WriteLine($"The sum of the numbers from 1 to {number = ServiceClass.InputPositiveIntegerNumber()} = {Sum(number)}"); break; case "p": Console.WriteLine($"The product of the numbers from 1 to {number = ServiceClass.InputPositiveIntegerNumber()} = {Product(number)}"); break; case "e": break; default: { Console.WriteLine("Data you've inputted is incorrect. Let's try again."); ExerciseRun(); } break; } }
void StartGame() { for (int i = 0; i < 18; i++) { Console.Write("* "); int delay = 500 - (i * 30) + 20; if (delay < 0) { delay = 0; } System.Threading.Thread.Sleep(delay); } Console.WriteLine("\nI've just thought a number. What the number is?\n" + "Input your guess and press \"Enter\""); var rnd = new Random(); int thoughtNumber = rnd.Next(1, 100); int guessNumber = (int)ServiceClass.InputPositiveIntegerNumber(); int previousGuessNumber; int tryCounter = 1; while (guessNumber != thoughtNumber) { previousGuessNumber = guessNumber; if (guessNumber < thoughtNumber) { Console.WriteLine("Your number is TOO SMALL"); } else { Console.WriteLine("Your number is TOO LARGE"); } guessNumber = (int)ServiceClass.InputPositiveIntegerNumber(); if (previousGuessNumber != guessNumber) { tryCounter++; } } Console.WriteLine("!!!CONGRATULATIONS, YOU WON!!!\n" + $"The number is {thoughtNumber}. You've done it in {tryCounter} tries!\n\n"); System.Threading.Thread.Sleep(3000); Console.WriteLine("Want to play one more time? >>> press SPACE-key\n" + "For escape press any other key\n"); if (Console.ReadKey(true).KeyChar == ' ') { StartGame(); } }
public override void ExerciseRun() { long sum = 0; int number = ServiceClass.InputPositiveIntegerNumber(); for (int i = number; i > 0; i--) { sum += i; } Console.WriteLine($"sum of numbers from 1 to {number} (calculated by cycle) = {sum}"); long Factorial(int num) { // не могу понять почему не получается перехватить исключение на этой строке try { if (num == 1) { return(1); } sum = num + Factorial(num - 1); return(sum); } catch (StackOverflowException) { Console.WriteLine($"Recursive method of calculating of sum from 1 to {number} failed, supposedly becase of StackOverflow EXEPTION"); return(0); } } try { Console.WriteLine($"sum of numbers from 1 to {number} (calculated by recursion) = {Factorial(number)}"); } catch (StackOverflowException) { Console.WriteLine($"Recursive method of calculating of sum from 1 to {number} failed, supposedly becase of StackOverflow EXEPTION"); } }