yahorrr

Untitled

Sep 14th, 2022
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.29 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Numbers
  4. {
  5.     public static class IntegerExtensions
  6.     {
  7.         public static ComparisonSigns? GetTypeComparisonSigns(this long number) //здесь у тебя был не ComparisonSigns?, а object?, возможно изза этого была ошибка в тестах
  8.         {
  9.             ComparisonSigns result = 0;
  10.  
  11.             if (number > -10 && number < 10)
  12.             {
  13.                 return null;
  14.             }
  15.             else // else не нужон
  16.             {
  17.                 while (number / 10 != 0)
  18.                 {
  19.                     if ((number / 10) % 10 > number % 10) //если совсем уже душнить то лучше завестм переменные для (number / 10) % 10 пушто оно если заходит во 2й иф считает их 2й раз заново эти числа, а так будет считать ток 1 раз при создании переменной
  20.                     {
  21.                         result |= ComparisonSigns.MoreThan;
  22.                     }
  23.                     else if ((number / 10) % 10 < number % 10)
  24.                     {
  25.                         result |= ComparisonSigns.LessThan;
  26.                     }
  27.                     else
  28.                     {
  29.                         result |= ComparisonSigns.Equals;
  30.                     }
  31.  
  32.                     number = number / 10; //number /= 10
  33.                 }
  34.             }
  35.  
  36.             return result;
  37.         }
  38.  
  39.         //этот алгоритм проходит все тесты однако не работатет для отрицательных чисел( если, опять же, ты хочешь запариться можешь допилить)))
  40.  
  41.         public static string GetTypeOfDigitsSequence(this long number)
  42.         {
  43.             string result;
  44.             switch (number.GetTypeComparisonSigns())
  45.             {
  46.                 case ComparisonSigns.LessThan:
  47.                     result = "Strictly Increasing.";
  48.                     break;
  49.                 case ComparisonSigns.MoreThan:
  50.                     result = "Strictly Decreasing.";
  51.                     break;
  52.                 case ComparisonSigns.Equals:
  53.                     result = "Monotonous.";
  54.                     break;
  55.                 case ComparisonSigns.MoreThan | ComparisonSigns.Equals | ComparisonSigns.LessThan:
  56.                     result = "Unordered.";
  57.                     break;
  58.                 case ComparisonSigns.MoreThan | ComparisonSigns.LessThan:
  59.                     result = "Unordered.";
  60.                     break;
  61.                 case ComparisonSigns.LessThan | ComparisonSigns.Equals:
  62.                     result = "Increasing.";
  63.                     break;
  64.                 case ComparisonSigns.MoreThan | ComparisonSigns.Equals:
  65.                     result = "Decreasing.";
  66.                     break;
  67.                 default:
  68.                     result = "One digit number.";
  69.                     break;
  70.             }
  71.  
  72.             return result;
  73.         }
  74.     }
  75. }
  76.  
  77. //тут тоже хорошо, но если тебе интересно))) можешь чекнуть что такое switch expresiion через него можно красивее сделать
  78. //в целом - атлишна
Add Comment
Please, Sign In to add comment