Advertisement
MrVeiran

Nikita Autem for you:3

Jan 18th, 2022
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.37 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp48
  4. {
  5.     class Program
  6.     {
  7.         static int count = 0;
  8.         static void Main(string[] args)
  9.         {
  10.             float a = 11f;//начальные координаты
  11.             float b = 3f;// будет копиться пока не станет больше а
  12.  
  13.             float result = 0;//копит шаги заместо деления
  14.             float vrem = 0;//будет копиться и сравниваться
  15.             string resultF;//конечный результат
  16.             float basic = b;//базовый шаг
  17.             //
  18.             while (true)
  19.             {
  20.                 if (a >= b)
  21.                 {
  22.                     result++;
  23.                     vrem = b;
  24.                     b += basic;
  25.                 }
  26.                 else
  27.                 {
  28.                   break;
  29.                 }
  30.             }
  31.             //Цикл нужен был чтобы посчитать целое число, и после него записать запятую или точку.
  32.             //дальше будет рекурсивная функция для определения чисел после запятой
  33.             resultF = Convert.ToString(result + ",")+Convert.ToString(MethodGovna((a - vrem) * 10, basic));
  34.            
  35.             Console.WriteLine($"{resultF} текущее число");
  36.             Console.ReadKey();
  37.         }
  38.  
  39.         private static string MethodGovna(float i, float basic)
  40.         {
  41.             count++;
  42.             float b = basic;
  43.             float result = 0;
  44.             float vrem = 0;
  45.             if ((i % basic)==0)// если остаток от деления будет равен нулю нам не надо входить в себя же это условие чтобы оборвать рекурсию
  46.             {
  47.                 while (true)
  48.                 {
  49.                     if (i >= b)
  50.                     {
  51.                         result++;
  52.                         vrem = b;
  53.                         b += basic;
  54.                     }
  55.                     else
  56.                     {
  57.                         break;
  58.                     }
  59.                 }
  60.                 //тут происходит обрыв рекурсии
  61.                 return Convert.ToString(result);
  62.             }
  63.             while (true)
  64.             {
  65.                
  66.                 if (i >= b)
  67.                 {
  68.                     result++;
  69.                     vrem = b;
  70.                     b += basic;
  71.                 }
  72.                 else
  73.                 {
  74.                     if (count == 3)
  75.                     {
  76.                         //тут мы обрываем рекурсию, чтобы бесконечно она в себя не заходила( например 128/3) 3 числа после запятой
  77.                         return Convert.ToString(result);
  78.                         break;
  79.                     }
  80.                     else
  81.                     {
  82.                         //заходим в рекурсию возвращая от туда значение
  83.                         return Convert.ToString(result) + Convert.ToString(MethodGovna((i - vrem) * 10, basic));
  84.                         break;
  85.                     }
  86.                 }
  87.             }
  88.         }
  89.     }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement