Даны числа a, b, c, d. Выведите в порядке возрастания все целые числа от 0 до 1000, которые являются корнями уравнения a∗x3+b∗x2+c∗x+d=0. Входные данные
Вводятся целые числа a, b, c и d. Все числа не превосходят по модулю 30000.
Выходные данные
Выведите ответ на задачу. Если в указанном промежутке нет корней уравнения, то ничего выводить не нужно.
#include
#include
using namespace std;
int main()
{
int a, b, c, d, i;
cin >> a >> b >> c >> d;
for (i = 0; i <= 1000; i += 1)
{
if ((a * pow(i,3)) + (b * pow(i, 2)) + (c * i) + d == 0)
{
cout << i;
}
}
}
Что не так с кодом?
n = 10;
var
a: array [1..n, 1..n] of integer;
i, j, min: integer;
begin
Randomize;
Writeln('*** Исходная матрица ***');
for i := 1 to n do
begin
for j := 1 to n do
begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end;
Writeln
end;
{ Собственно, замена }
for i := 1 to n do
begin
min := 32767;
for j := 1 to n do
if min > a[i, j] then min := a[i, j];
a[i, n - i + 1] := min
end;
{ Результат }
Writeln('*** Результирующая матрица ***');
for i := 1 to n do
begin
for j := 1 to n do Write(a[i, j]:4);
Writeln
end
end.
Тестовое решение:
*** Исходная матрица ***
40 7 17 -35 21 2 28 9 6 22
-18 -10 -26 -21 12 2 -40 7 32 -25
-40 -34 -40 16 15 -37 -36 40 7 -3
50 -15 -11 43 -49 -48 -46 -10 48 -31
-26 3 25 38 -39 14 9 -20 46 7
-29 -14 -15 -50 39 23 -4 -49 1 7
-13 39 -49 -42 22 47 -49 -19 -23 10
-2 21 9 12 -49 8 -8 -27 5 -50
5 35 44 -50 -25 14 -50 -12 -46 -21
7 -47 40 -9 33 -15 1 17 -35 -36
*** Результирующая матрица ***
40 7 17 -35 21 2 28 9 6 -35
-18 -10 -26 -21 12 2 -40 7 -40 -25
-40 -34 -40 16 15 -37 -36 -40 7 -3
50 -15 -11 43 -49 -48 -49 -10 48 -31
-26 3 25 38 -39 -39 9 -20 46 7
-29 -14 -15 -50 -50 23 -4 -49 1 7
-13 39 -49 -49 22 47 -49 -19 -23 10
-2 21 -50 12 -49 8 -8 -27 5 -50
5 -50 44 -50 -25 14 -50 -12 -46 -21
-47 -47 40 -9 33 -15 1 17 -35 -36
- загадываем число. Прибавляем к нему 7. Отнимаем загаданное число.
x + 7 - x = 7
- загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля)
x * 7 / x = 7
Можно немного это замаскировать:
- загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число.
(15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3)
- загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2.
Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка:
- загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата.
666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792