Вообще, ваш вопрос не вопрос, а задание, но.
1. Из-за паскале-подобного кода было сложно понять, но после рефакторинга я понял, что это вычисление n-го члена последовательности фибоначи. n-3 сделано, тк автор когда м***к и не знает ничего про чистоту и читабельность кода.
Console.Write("n = ");
var n = Convert.ToInt32(Console.ReadLine());
var s = new [] { 1, 1, 2};
for(var i = 0; i < n - 3; i++)
{
s[0] = s[1];
s[1] = s[2];
s[2] = s[0] + s[1];
}
Console.WriteLine(x2);
Тут "- 3" из-за того, что первые три члена уже вычислены - 1, 1, 2, ...
И так далее.
Аналогично со второй задачей - сначала даёшь нормальные имена переменным, и переносишь их туда, где они реально нужны, потом убираешь лишние комментарии, while вот это странный заменяешь на for, и так далее.
Вообще, понять, почему код именно такой, не зная изначальную задачу, сложно.