Почему делают математику неправильно? Например, если n = 301
string n = Console.ReadLine(); string m = ""; for (int i = n.Length - 1; i >= 0; i--) { m = m + n[i]; } Console.WriteLine("Added number in reverse order: " + m + "\n"); Console.WriteLine("The result should have been so if the n = 103(i.e reverse view 301):"); Console.WriteLine("1 * (8^0) = " + (1 * Math.Pow(8, 0))); Console.WriteLine("0 * (8^1) = " + (0 * Math.Pow(8, 1))); Console.WriteLine("3 * (8^2) = " + (3 * Math.Pow(8, 2))); Console.WriteLine("Summ = 1 + 0 + 192 = 193 - correct result"); double s = 0, s1 = 0; Console.WriteLine("\nStarting cycle:\n"); for (int i = 0; i < m.Length; i++) { Console.Write(i + " cycle = "); s1 = Convert.ToInt64(m[i]) * Math.Pow(8, i); Console.WriteLine(s1); s = s + (Convert.ToInt32(m[i]) * Math.Pow(8, i)); } Console.WriteLine("Summ = " + s +" - uncorrect result"); Console.ReadKey();
Что я уже пробовал:
Может быть, есть проблема при преобразовании переменной?. Помоги мне, умоляю!
Philippe Mori
Используя отладчик, было бы очень легко разобраться в проблеме.
Afzaal Ahmad Zeeshan
Вы должны знать, что строка 301 не равна целому числу 301.