using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.Write("Enter N = ");
int n = int.Parse(Console.ReadLine());
double Result = 1;
int i;
for (i = 0; i < n; i++) Result *= 1.0 + 1.0 / Math.Pow((double)i, (double)i);
Console.WriteLine("For cycle result = " + Result.ToString());
i = 0;
Result = 1;
while (i < n) {
Result *= 1.0 + 1.0 / Math.Pow((double)i, (double)i);
i++;
}
Console.WriteLine("While cycle result = " + Result.ToString());
Console.ReadLine();
}
}
}
1) N = 4
2) N = 1
Объяснение:
1) в первом случае стоит условие "пока переменная N (которая изначально равна 1) меньше или равна 5" мы умножаем данную переменную на 2, до тех пор пока она не станет больше или равна 5 , соответственно цикл завершается, когда N стала больше 5.
1 * 2 = 2, N присваивается ответ (т.е. число 2), далее 2 * 2 = 4, далее по идее программа будет делать ещё одно действие, потому что условие не достигнуто и N не равно 5, но в итоге ответ будет равен 4, потому что 4 * 2 уже получится 8, что не соответствует условию.
2) во втором такая же схема, поменялось только действие с произведения на разность
если что-то не понятно, спрашивай в комментариях :)
11/29 ≈ 0.379
Шанс угадать успевающего в первом случае выше, он составляет примерно 70%. (1-0.308=0.692)