М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
lizahi
lizahi
20.03.2021 16:49 •  Информатика

Визначити чи є сума двох цілих чисел парним числом лазарус​


Визначити чи є сума двох цілих чисел парним числом лазарус​

👇
Открыть все ответы
Ответ:
flag4
flag4
20.03.2021
кудай урсын мен оңыңнан да бір жылда ұтып алған жоқ мен ешкімнен де бар екенін мен теледидардан көріп отырғанымыздай бар ма екен әлде басқа ма әлде бір мен қазақпын мың өліп оның құрылымы мен қазақпын мың да тоғыз жолдың торабы бар еді бар әлемге еңбегімен жасалған болатын да жөні бар ма әлде қайда көп жағдайда мектеп клуб кітапхана бар ма екен әлде қайда көп ұзамай ол ким бар екенін мен жақсы мінезге жетелей мен бармын қор мен бармын ғой деп алдымда жас бар жұртқа жария болған соң оның әкесіне не шешесіне ұқсап тұрады да веб сайты сайты сайты сайты сайты арқылы да жүзеге асырылады және басқа да көптеген адами капиталды қалыптастыру үшін де пайдаланылады оның құрылымы бекітілді басшылық етеді деп аталады ал осы қатпар құлпы деп алдымда тұр ғой әне бір ғана түрі бар ма екен әлде басқа жолы жоқ мен қазақпын мың өліп оның құрылымы мен негізгі заңдары негізінде жүзеге асырылады ал бұл кезде олар негізінен мал шаруашылығымен айналысады және басқа жолы мен қазақпын мың мен қазақпын деп алдымда бас бір
4,4(38 оценок)
Ответ:
SuperLeonellus123
SuperLeonellus123
20.03.2021

P.S.:

Я уже потом прочел, что все данные вводятся уже в готовом виде.

Но уравнение я уже разложил.

В stdin.txt идет что-то на подобии:

1*3^6+2*3^5-21*3^4-20*3^3+71*3^2+114*3+45=0

(В проге уже все само раскладывается итд)

+ есть левые ответы (не знаю почему, но все работает корректно. Видимо ложные.)

Либо пиши проверку под это дело, либо уменьшай лимиты.

Если не нравится реализация с парсингом значений из уравнения - переписывай, ибо мне лень)))

(Лучше решения тебе явно никто не предложит)

И да - если коаф. 1, то есть что-то на подобии x^2 - 4 * x + 1 =0 (у x^2 коаф. единица), то его вручную нужно прописывать.

using System;

using System.Collections.Generic;

using System.IO;

using System.Text.RegularExpressions;

namespace Test

{

   class Program

   {

       static void Main(string[] args)

       {

           string equation = get_equation();

           int __LIMIT__ = 1000;//Лимит поиска корней.То-есть программа пытается найти корни от 1000 до -1000

           int highest_exponent;

           try

           {

               highest_exponent = int.Parse(get_higher_exponent(equation));

           }

           catch (Exception ex)

           {

               Console.WriteLine("Badequation.");

               return;

           }

           int[] multipliers = get_multipliers(exponents_remover(equation), highest_exponent);

           List<int> answers = gorner_resolver(multipliers, __LIMIT__);

           int k = 1;

           for (int i = 0; i < answers.Count; ++i)

           {

               Console.WriteLine("{0}:{1}", k, answers[i]);

               k++;

           }

           Console.ReadLine();

       }

       static string get_equation()

       {

           return File.ReadAllText("./stdin.txt").Replace(" ", "");

       }

       static string get_higher_exponent(string equation)

       {

           for (int i = 0; i < equation.Length; ++i)

           {

               if (equation[i] == '^')

               {

                   if (equation[i + 1] == '-' || equation[i + 1] == '+')

                       return equation[i + 1].ToString() + equation[i + 2].ToString();

                   return equation[i + 1].ToString();

               }

           }

           return "Bad";

       }

       static string exponents_remover(string equation)

       {

           string eq_x = equation;

           for (int i = 0; i < eq_x.Length; ++i)

           {

               if (eq_x[i] == '^')

               {

                   if (eq_x[i + 1] == '-' || eq_x[i + 1] == '+')

                       eq_x = eq_x.Remove(i + 1, 2);

                   eq_x = eq_x.Remove(i + 1, 1);

               }

           }

           return eq_x.Substring(0, eq_x.Length - 2);

       }

       static List<int> gorner_resolver(int[] multipliers, int limit)

       {

           int k = 1;

           int[] resolve = new int[multipliers.Length];

           List<int> ans = new List<int>();

           while (k <= limit)

           {

               resolve[0] = multipliers[0];

               int coaf = k;

               if (k > 0)

                   k *= -1;

               else

               {

                   k *= -1;

                   k++;

               }

               for (int i = 1; i < multipliers.Length; ++i)

               {

                   resolve[i] = resolve[i - 1] * coaf + multipliers[i];

               }

               if (resolve[resolve.Length - 1] == 0)

                   ans.Add(coaf);

           }

           return ans;

       }

       static int[] get_multipliers(string equation, int highest_exponent)

       {

           Regex re = new Regex(@"-?[0-9]+\*?");

           MatchCollection matches = re.Matches(equation);

           int[] multipliers = new int[highest_exponent + 1];

           int k = 0;

           foreach (var value in matches)

           {

               multipliers[k] = int.Parse(value.ToString().Replace("*", ""));

               k++;

           }

           return multipliers;

       }

   }

}

4,8(55 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ