Перевести код с 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();
}
}
}