rikki07834591
?>

Как сделать в turbo pascal которая запрашивает с клавиатуры 2 произвольных числа x и y. если разность x и y больше 0, то вычисляет и выводит на экран сумму всех целых чисел от y до x, иначе вычесляет и выводит на экран разность всех целых чисел от y до x

Информатика

Ответы

lobanosky162
Begin               s=0           if y> 0 and x> o then  begin s=s+ai
Sergeevna-Makarov

Воть

Объяснение:

Это ж всё брутфорс, это ж несерьезно :)

На самом деле, конечно, перебор здесь вполне подходит, и можно дать ему границы сразу — по количеству цифр, по максимальной цифре. Но есть же и аналитический метод.

350214х = 11892410

Это означает, что

3x5 + 5x4 + 0x3 + 2x2 + 1x + 4 = 11892410

или

3x5 + 5x4 + 2x2 + x – 118920 = 0

Классический многочлен пятой степени. И теперь нужно решить полиномиальное уравнение. По основной теореме алгебры у него будет пять комплексных корней, нас, правда, интересует только действительный, хорошо бы положительный, и хорошо бы целый :)

Из теоремы Абеля-Руффини известно, что аналитически мы такое уравнение не решим в общем случае, но я бы даже и пробовать не стал: на то придуманы численные методы, которых всяких есть многатыщ — выбрать можно по вкусу, начиная хоть с метода товарища Ньютона. Решаем, и получаем:

x = 8

Хорошо и красиво. Ну можете еще добить преподавателя комплексными корнями, сказав, что это же число записывается точно так же в системе счисления с основанием (-7.07949 - 4.865i) :)

поделиться улучшить этот ответ отслеживать

ответ дан

17 сен '11 в 11:58

Ali

2,109●88 серебряных знаков●1010 бронзовых знаков изменён

17 сен '11 в 12:17

получается только перебор? очень жалко что другого метода нет...))а "Это ж всё брутфорс, это ж несерьезно :)" - это как понять? чет не вкурил к чему это! ))) ну ладно + – Евгений536 17 сен '11 в 12:09

1

Я к тому, что другие ответы были про перебор. И это правильно, вообще-то, потому как перебрать десяток оснований легче, чем решить полином пятой степени. – Ali 17 сен '11 в 12:10

2

Не брутфорс, можно сделать бинарный поиск по X! :) – Михаил М 19 авг '13 в 14:27

добавить комментарий

голос «за»

4

голос «‎против»

Что бы перевести число с какой то системы счисления с основой Х в десятичную, нужно делать так: 1) начальная сумма 0 2) текущая цифра - самая первая 3) текущую сумму умножаем на основу Х 4) добавляем текущую цифру к сумме. 5) если справа ещё есть цифры - к пункту 3 иначе выход Так как вручную проверять все это лень, пишется небольшая программа, к примеру на питоне

def r(x):

return (((((3 * x + 5) * x + 0) * x + 2) * x + 1) * x + 4)

for i in range(6,10):

print i, r(i)

Начинаем с 6, так как все цифры в заданном числе точно меньше 6 и это будет минимально возможная основа. А верхняя 9, так как "визуально" число в системе счисления Х больше его записи в десятичной форме.

и конечный ответ - 8.

sayfullinmr
Var   a,b,c,p,q,h,x,y: real; begin   write('введите через пробел коэффициенты a,b,c: ');   read(a,b,c);   write('введите через пробел границы интервала [p; q]: ');   read(p,q);   write('введите шаг табуляции h: ');   read(h);   x: =p;   while x< =q+h/10 do begin       y: =c+x*(b+x*a); { схема горнера для вычисления значения полиномов }       writeln(x: 15: 8,y: 15: 8);       x: =x+h   end end. тестовое решение: введите через пробел коэффициенты a,b,c: -4 2.7 10.582 введите через пробел границы интервала [p; q]: -3 2.5 введите шаг табуляции h: 0.25       -3.00000000    -33.51800000       -2.75000000    -27.09300000       -2.50000000    -21.16800000       -2.25000000    -15.74300000       -2.00000000    -10.81800000       -1.75000000      -6.39300000       -1.50000000      -2.46800000       -1.25000000        0.95700000       -1.00000000        3.88200000       -0.75000000        6.30700000       -0.50000000        8.23200000       -0.25000000        9.65700000         0.00000000      10.58200000         0.25000000      11.00700000         0.50000000      10.93200000         0.75000000      10.35700000         1.00000000        9.28200000         1.25000000        7.70700000         1.50000000        5.63200000         1.75000000        3.05700000         2.00000000      -0.01800000         2.25000000      -3.59300000         2.50000000      -7.66800000

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Как сделать в turbo pascal которая запрашивает с клавиатуры 2 произвольных числа x и y. если разность x и y больше 0, то вычисляет и выводит на экран сумму всех целых чисел от y до x, иначе вычесляет и выводит на экран разность всех целых чисел от y до x
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

savenko0109152
Vipnikavto58
ams-sim
iptsr4968
valeron7hair7
textildlavas21
Борисовна
Матвеев
martinzdraste
taksa6444
Семеновна-Павел
ribanina
Antonov-Elena
kristinmk
eurostom
▲