Перевести код с Python на C#

Узнай цену своей работы

Формулировка задачи:

перевести и Python на C#
import sys
 
lineIn = sys.stdin.readline().split(" ")
n = int(lineIn[0])
m = int(lineIn[1])
 
fibPrev = 0
fib = 1
cached = [fibPrev, fib]
 
for curr in range(1, n):
    fibOld = fib
    fib = (fib + fibPrev) % m
    fibPrev = fibOld
 
    if fibPrev == 0 and fib == 1:
        cached.pop()
        break
    else:
        cached.append(fib)
 
offset = n % len(cached)
sys.stdout.write(str(cached[offset]))

Решение задачи: «Перевести код с Python на C#»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication28
{
    class Program
    {
        static void Main(string[] args)
        {
            var lineIn = Console.ReadLine().Split(' ');
            var n = int.Parse(lineIn[0]);
            var m = int.Parse(lineIn[1]);
 
            var fibPrev = 0;
            var fib = 1;
            var cached = new List<int>() { fibPrev, fib };
 
            foreach (var curr in Enumerable.Range(1, n))
            {
                var fibOld = fib;
                fib = (fib + fibPrev) % m;
                fibPrev = fibOld;
 
                if (fibPrev == 0 && fib == 1)
                {
                    cached.RemoveAt(cached.Count - 1); //or cached.Remove(cached.Last());
                    break;
                }
                else
                {
                    cached.Add(fib);
                }
            }
 
            var offset = n % cached.Count;
            Console.WriteLine(cached[offset]);
 
            //Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5