Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace NineDigitMagicNumbers
- {
- class Program
- {
- static void Main(string[] args)
- {
- // input
- int sum = int.Parse(Console.ReadLine());
- int diff = int.Parse(Console.ReadLine());
- // declarations
- IEnumerable<string> combinations = CombinationsWithRepition("1234567", 3);
- List<string> workCopy = combinations.ToList();
- List<int> numbers = workCopy.Select(int.Parse).ToList();
- List<int> result = new List<int>();
- for (int i = 0; i < numbers.Count; i++)
- {
- for (int j = i + 1; j < numbers.Count; j++)
- {
- for (int k = j + 1; k < numbers.Count; k++)
- {
- string temp1 = workCopy[i] + workCopy[j] + workCopy[k];
- int temp2 = int.Parse(temp1);
- int tempSum = 0;
- for (int l = 1; l <= 9; l++)
- {
- tempSum += GetDigit(temp2, l);
- }
- if (tempSum == sum && (numbers[k] - numbers[j] == diff) && (numbers[j] - numbers[i] == diff))
- {
- result.Add(temp2);
- }
- }
- }
- }
- if (result.Count > 0)
- {
- foreach (var item in result)
- {
- Console.WriteLine(item);
- }
- }
- else
- {
- Console.WriteLine("No");
- }
- }
- static String Convert(string symbols, int number, int totalLen)
- {
- var result = "";
- var len = symbols.Length;
- var nullSym = symbols[0];
- while (number > 0)
- {
- var index = number % len;
- number = number / len;
- result = symbols[index] + result;
- }
- return result.PadLeft(totalLen, nullSym);
- }
- static IEnumerable<String> CombinationsWithRepition(string symbols, int len)
- {
- for (var i = 0; i < Math.Pow(symbols.Length, len); i++)
- yield return Convert(symbols, i, len);
- }
- static int GetDigit(int number, int digit)
- {
- return (number / (int)Math.Pow(10, digit - 1)) % 10;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement