.NET 4.x Неверный результат работы программы - C#
Формулировка задачи:
Дано первоначальное число. Изменяем его путем прибавления других чисел и умножения на другие числа. в Конце вычисляется остаток от деления на последнее число.
http://www.codeabbey.com/index/task_view/modular-calculator
Проблема в том, что по предоставленному ряду чисел и операций сайт ругается, что ответ должен быть 8141, а у меня получается 1193
Набрал строку в Excel:
=((((((((((((3* 6 + 7) * 4810 + 562 + 17 + 67 + 32 + 95) * 4710 + 2738) * 4628 + 7) * 4776 * 4769 + 90) * 1988 * 456 * 8 + 6) * 41 + 3394) * 4 + 1650) * 1 * 37 * 2828 + 8 + 967) * 1 * 2738 + 2) * 1396 * 10 * 854 + 6 + 54 + 698 + 354 + 5) * 5 * 626 * 45 * 586 * 5119 + 8) * 584 * 7728
До деления, у меня и в Excel, результат одинаковый
Вот код программы.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Modular_Calculator { class Program { static void Main(string[] args) { double x = 3d; string s = "* 6 + 7 * 4810 + 562 + 17 + 67 + 32 + 95 * 4710 + 2738 * 4628 + 7 * 4776 * 4769 + 90 * 1988 * 456 * 8 + 6 * 41 + 3394 * 4 + 1650 * 1 * 37 * 2828 + 8 + 967 * 1 * 2738 + 2 * 1396 * 10 * 854 + 6 + 54 + 698 + 354 + 5 * 5 * 626 * 45 * 586 * 5119 + 8 * 584 * 7728 % 8225"; string[] ss = s.Split(' ').ToArray(); for (int i = 0; i < ss.Length; i=i+2) { if (Convert.ToChar(ss[i]) == '+') x = x + Int32.Parse(ss[i+1]); if (Convert.ToChar(ss[i]) == '*') x = x * Int32.Parse(ss[i + 1]); if (Convert.ToChar(ss[i]) == '%') x = x % Int32.Parse(ss[i + 1]); } Console.WriteLine(x); Console.ReadLine(); } } }
Решение задачи: «.NET 4.x Неверный результат работы программы»
textual
Листинг программы
double a = 1234567890123456; Console.WriteLine("{0:N0}", a); a = a + 1; Console.WriteLine("{0:N0}", a);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д