Форум программистов, компьютерный форум CyberForum.ru

Схема Горнера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица. Побочная диагональ http://www.cyberforum.ru/cpp-beginners/thread191652.html
Дана прямоугольная матрица. Определить является ли заданная матрица симметричной относительно побочной диагонали. Начало кода : #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <time.h> #include <Windows.h>
C++ Дано число. Отбросить в нем все цифры, стоящие левее самой правой единицы. вообщем такое задание, "Дано число. Отбросить в нем все цифры, стоящие левее самой правой единицы." вроде легко, но я даже не знаю с чего начинать, может кто помочь код написать? :( http://www.cyberforum.ru/cpp-beginners/thread191644.html
Переменная в разных классах C++
Добрый день уважаемые гуру, у меня есть очень большая проблема. Есть исходники проги написаной на свизуал студии 6, состоят из большого числа сорцов, так вот какая проблема, в одном из сорцов есть переменная, как мне ей воспользоваться в другой части программы? И еще,пытался ее открыть в 10 студии-не открывает, пишет что не может переконвертировать некоторые файлы.
Вопрос по среде разработки эклипс C++
Как добавить существующие исходные файлы в проект?
C++ Произведение неположительных чисел http://www.cyberforum.ru/cpp-beginners/thread191630.html
Дана последовательность целых чисел {Aj} произвольной длины. Найти произве-дение неположительных чисел, наименьшее из неположительных чисел, и номер этого числа в последовательности. #include <stdio.h> #include <conio.h> main() { int j, mi, min, a, kol, pr; clrscr(); printf("zadaite dliny massiva(ne bolee 20 elementov) \n");
C++ Программа для нахождения сопротивления соединения При сопротевлении R1,R2,R3 соединены параллельно. Найти сопротивление соединения. Вот сам код программы подредактируйте его а то не могу понять ошибку. #include <iostream> int main() { double R1, R2, R3; double R; std::cout << "Enter R1: " подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.11.2010, 17:51     Схема Горнера
Если раньше никто не сделает - напишу вам программу. Сегодня не успеваю.

Добавлено через 30 минут
Особо не тестил, но на элементарных тестах отрабатывает на ура.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
 
int Horner(int, int *, int);
int minDiv(int, int);
 
int main()
{
    int *factor;
    int n;
    bool key = false;
 
    std::cout << "Enter n: ";
    std::cin >> n;
 
    n++;
 
    factor = new int [n];
 
    for (int i = 0; i < n; i++)
    {
        std::cout << "factor[" << i << "] = ";
        std::cin >> factor[i];
    }
 
    int free = factor[n - 1] > 0 ? factor[n - 1] : -factor[n - 1];
 
    if (free == 0)
    {
        std::cout << "Root: 0" << std::endl;
 
        key = true;
    }
    else
    {
        for (int i = 0; i <= free; i++)
        {
            int root;
 
            if ((root = minDiv(free, i)) != 0)
            {
                int value;
 
                if ((value = Horner(root, factor, n)) == 0)
                {
                    std::cout << "Root: " << root << std::endl;
 
                    key = true;
                }
 
                if ((value = Horner(-root, factor, n)) == 0)
                {
                    std::cout << "Root: " << -root << std::endl;
 
                    key = true;
                }
 
                i = root - 1;
            }
        }
    }
 
    if (!key)
        std::cout << "No roots" << std::endl;
 
    delete [] factor;
 
    std::cin.get();
    return 0;
}
 
int Horner(int x, int *factor, int n)
{
    int result = factor[0];
 
    for (int i = 1; i < n; i++)
        result = result * x + factor[i];
 
    return result;
}
 
int minDiv(int m, int k)
{
    for (int i = k + 1; i < m; i++)
        if (m % i == 0)
            return i;
 
    return 0;
}
 
Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru