Advertisement
vencinachev

ADS

Sep 22nd, 2022
820
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ASD
  8. {
  9.     class Program
  10.     {
  11.         static int GCD(int a, int b)
  12.         {
  13.             while (b != 0)
  14.             {
  15.                 int t = b;
  16.                 b = a % b;
  17.                 a = t;
  18.             }
  19.             return a;
  20.         }
  21.  
  22.         static int GCDR(int a, int b)
  23.         {
  24.             if (b == 0)
  25.             {
  26.                 return a;
  27.             }
  28.             return GCDR(b, a % b);
  29.         }
  30.  
  31.         static int GCD3(int a, int b, int c)
  32.         {
  33.             return GCD(GCD(a, b), c);
  34.         }
  35.  
  36.         static int GCDN(params int[] nums)
  37.         {
  38.             int result = nums[0];
  39.             for (int i = 1; i < nums.Length; i++)
  40.             {
  41.                 result = GCD(result, nums[i]);
  42.             }
  43.             return result;
  44.         }
  45.  
  46.         static int DigitSumI(int num)
  47.         {
  48.             int sum = 0;
  49.             while (num != 0)
  50.             {
  51.                 sum += num % 10;
  52.                 num /= 10;
  53.             }
  54.             return sum;
  55.         }
  56.  
  57.         static int DigitSum(int num)
  58.         {
  59.             if (num < 10)
  60.             {
  61.                 return num;
  62.             }
  63.             return num % 10 + DigitSum(num / 10);
  64.         }
  65.  
  66.         static int DigitRoot(int num)
  67.         {
  68.             if (num < 10)
  69.             {
  70.                 return num;
  71.             }
  72.             return DigitRoot(DigitSum(num));
  73.         }
  74.  
  75.         static int count = 0;
  76.         static int ArrayWalk(int[] arr, int index)
  77.         {
  78.             if (index < 0 || index >= arr.Length || arr[index] == -1)
  79.             {
  80.                 Console.WriteLine("out");
  81.                 return 0;
  82.             }
  83.             Console.Write(arr[index] + "->");
  84.             if (DigitSum(arr[index]) % 2 == 0)
  85.             {
  86.                 arr[index] = -1;
  87.                 return 1 + ArrayWalk(arr, index + 3);
  88.             }
  89.             else
  90.             {
  91.                 arr[index] = -1;
  92.                 return 1 + ArrayWalk(arr, index - 2);
  93.             }
  94.         }
  95.  
  96.         static int EvenCount(int[] arr, int index)
  97.         {
  98.             if (index >= arr.Length)
  99.             {
  100.                 return 0;
  101.             }
  102.             if (arr[index] % 2 == 0)
  103.             {
  104.                 return 1 + EvenCount(arr, index + 1);
  105.             }
  106.             else
  107.             {
  108.                 return EvenCount(arr, index + 1);
  109.             }
  110.         }
  111.  
  112.         static bool EGNCheck(string egn)
  113.         {
  114.             if (egn.Length != 10)
  115.             {
  116.                 return false;
  117.             }
  118.             int[] coeff = { 2, 4, 8, 5, 10, 9, 7, 3, 6 };
  119.             int digit = 0;
  120.             for (int i = 0; i < 9; i++)
  121.             {
  122.                 digit += (egn[i] - '0') * coeff[i];
  123.             }
  124.             digit %= 11;
  125.             if (digit == 10)
  126.             {
  127.                 digit = 0;
  128.             }
  129.             if (digit == (egn[9] - '0'))
  130.             {
  131.                 return true;
  132.             }
  133.             return false;
  134.         }
  135.  
  136.         static void Main(string[] args)
  137.         {
  138.             Console.WriteLine(EGNCheck("6101057509"));
  139.             /*int[] arr = { 5, 23, 77, 123, 681, 9, 772, 16 };
  140.             Console.WriteLine("Even count: " + EvenCount(arr, 0));
  141.             /*int steps = ArrayWalk(arr, 4);
  142.             Console.WriteLine(steps);*/
  143.         }
  144.     }
  145. }
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement