Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class SumOfDigits
- {
- static long[] numbers = new long[18];
- static int startNum, endNum;
- static long result = 0;
- static List<long> list = new List<long>();
- static void Main()
- {
- Console.WriteLine("Write a number >= 0 and <= 100000000000000000");
- Console.Write("number = ");
- long number;
- bool isCorrect = long.TryParse(Console.ReadLine(), out number);
- if(!isCorrect || number > 100000000000000000
- || number < 0 || (number / 100) == 0)
- {
- Console.WriteLine("Incorrect input! Try again");
- Main();
- }
- CheckedCorrectDigits(number);
- long sum = 1;
- for (int i = 0; i < 18; i++)//добавян числата с които деля
- {
- numbers[i] = sum;
- sum *= 10;
- }
- Recursion(number);
- Console.WriteLine("Sum of the numbers: " + result);
- }
- private static void CheckedCorrectDigits(long number)
- {
- Console.Write("Start digit = ");
- startNum = int.Parse(Console.ReadLine());
- string lenghtStartNum = "" + number;
- Console.Write("Last digit = ");
- endNum = int.Parse(Console.ReadLine());
- string lenghtEndNum = "" + number;
- if (lenghtEndNum.Length < endNum)
- {
- Console.WriteLine("Write smaller last digit!");
- CheckedCorrectDigits(number);
- }
- if(lenghtStartNum.Length < startNum)
- {
- Console.WriteLine("Write smaller start digit!");
- CheckedCorrectDigits(number);
- }
- if(startNum > endNum)
- {
- Console.WriteLine("Start digit must be smaller or equal to end digit!");
- CheckedCorrectDigits(number);
- }
- }
- private static void Recursion(long num)
- {
- list.Insert(0, num % 10);
- if(num / numbers[startNum] == 0)//използвам индекса, ако е нула значи сме на тази цифра
- {
- for (int i = 0; i <= endNum - startNum; i++)
- {
- result += list[i];
- }
- return;
- }
- Recursion(num / 10);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment