Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp48
- {
- class Program
- {
- static int count = 0;
- static void Main(string[] args)
- {
- float a = 11f;//начальные координаты
- float b = 3f;// будет копиться пока не станет больше а
- float result = 0;//копит шаги заместо деления
- float vrem = 0;//будет копиться и сравниваться
- string resultF;//конечный результат
- float basic = b;//базовый шаг
- //
- while (true)
- {
- if (a >= b)
- {
- result++;
- vrem = b;
- b += basic;
- }
- else
- {
- break;
- }
- }
- //Цикл нужен был чтобы посчитать целое число, и после него записать запятую или точку.
- //дальше будет рекурсивная функция для определения чисел после запятой
- resultF = Convert.ToString(result + ",")+Convert.ToString(MethodGovna((a - vrem) * 10, basic));
- Console.WriteLine($"{resultF} текущее число");
- Console.ReadKey();
- }
- private static string MethodGovna(float i, float basic)
- {
- count++;
- float b = basic;
- float result = 0;
- float vrem = 0;
- if ((i % basic)==0)// если остаток от деления будет равен нулю нам не надо входить в себя же это условие чтобы оборвать рекурсию
- {
- while (true)
- {
- if (i >= b)
- {
- result++;
- vrem = b;
- b += basic;
- }
- else
- {
- break;
- }
- }
- //тут происходит обрыв рекурсии
- return Convert.ToString(result);
- }
- while (true)
- {
- if (i >= b)
- {
- result++;
- vrem = b;
- b += basic;
- }
- else
- {
- if (count == 3)
- {
- //тут мы обрываем рекурсию, чтобы бесконечно она в себя не заходила( например 128/3) 3 числа после запятой
- return Convert.ToString(result);
- break;
- }
- else
- {
- //заходим в рекурсию возвращая от туда значение
- return Convert.ToString(result) + Convert.ToString(MethodGovna((i - vrem) * 10, basic));
- break;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement