( Вход | Регистрация | Поиск )

Вычисление полинома, в С++
Дата обновления: 28.10.2006 - 12:35, перейти к новому сообщению

·ZaHack
Группа: Заблокированные

Сообщений: 1.252
Столкнулся с проблемой. Было дано задание написать прогамму на С++ которая выводит в консоль значения полинома у=11(х^10) + 10(x^9) + ..... +2x + 1. Разумеется, сперва прога запрашивает значение "х", и уже потом выводит значение в консоль. Вот вроде простая прога, а я сделать не смог sad.gif . Подскажите как, если кто знает?


Ответов(1 - 5)

·Korich
Группа: Наши Люди

Сообщений: 2.324
int y=0;
int a = 11;
do
{
y = y + exp(x*ln(a-1));
а--;
}
while a != -1;


·Штуцер
Группа: Наши Люди

Сообщений: 363
Дурак ты, korich, и шутки у тебя дурацкие... smile.gif
У меня только что сработал такой вариант (С++):

#include
#include
int main()
{
double x,y,z;
cin>>x;
y=1.0;
z=x;
for(double a=1.0;a<1.1E1;a++)
{
y+=(a+1.0)*z;
z*=x;
}
cout< getch();
return 1;
}

Это что-то типа схемы Горнера, если не ошибаюсь. Проверил Maple, точно правильно, но оптимизировать еще можно, если есть желание. Дерзайsmile.gif


·Korich
Группа: Наши Люди

Сообщений: 2.324
Штуцер, я и без тебя знаю чё я дурак, но код мой правильный
а у тя лишняя переменная, больше памяти выделяешь , да еще результат на 1 больше smile.gif)
проверь лучше biggrin.gif
потом уже будешь кричать ph34r.gif


·ZaHack
Группа: Заблокированные

Сообщений: 1.252
Штуцер, респект! И еще один маленький вопросик...Что конкретно означает вот эта строка:
CODE
for(double a=1.0;a<1.1E1;a++)
, а точнее 1.1Е1? Для чего это? Объясни, плз


·Штуцер
Группа: Наши Люди

Сообщений: 363
1.1E1 - тоже самое что и 11, и 11.0. Просто число 11 с плавающей запятой двойной точности. Можно было бы использовать челое число 11, но при этом будет происходить неявное преобразование типов, а я предпочитаю делать это явно.