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

Построить ломаную по заданным вершинам - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Копирующий конструктор класса, содержащего переменную-член указатель http://www.cyberforum.ru/cpp-beginners/thread344491.html
Практикуюсь по книге Стенли Липпмана "Язык программирования C++ вводный курс" 4 изд. Упражнение 13.4. Используя приведенный ниже набросок класса, напишите конструктор копий, который копирует все его элементы. Скопируйте объект, на который указывает указатель pstring, а не сам указатель. Вот как я реализовал данное упражнение: no_name.h #ifndef NONAME_H_ #define NONAME_H_ #include...
C++ Не работает отправка письма Добрый вечер. Помогите советом. Код: IdSMTP1->UserId = "stas67@yandex.ru"; IdSMTP1->Password = "*******"; IdSMTP1->Host = "smtp.yandex.ru"; http://www.cyberforum.ru/cpp-beginners/thread344464.html
Прошу небольшой помощи C++
Добрый вечер господа. В Этой теме(Кликабельно), я определился с тем, что начну изучение C++ И у меня к Вас возникает вопрос. Посоветуйте какие-либо книги, пособия, возможны как электронные, так и печатные издания, и сайты для новичком, если можно. Заранее спасибо. С Уважением, жду ответов.
C++ long long int и его поведение в структуре
#include <iostream> struct IndexBase { public: int x; int y; int z; unsigned int lastChange; unsigned long long int pos; unsigned short int size;
C++ Программа постоянно печатает степени целого числа 2 http://www.cyberforum.ru/cpp-beginners/thread344418.html
Напишите программу, которая постоянно печатает степени целого числа 2, соответственно 2, 4, 8, 16, 32, 64 и т.д. Число повторений вашего цикла не должно, быть определено (т.е. вы должны создать бесконечный цикл). Что случилось, когда вы выполнили эту программу? Ничего не выводит, где я не прав ? #include "stdafx.h" #include <iostream> using namespace std;
C++ Программа, которая читает сторону квадрата и рисует его звездочками и пробелами Напишите программу с ООП подходом, которая читает размер стороны квадрата и затем печатает звездочками и пробелами пустой квадрат заданного размера. Ваша программа должна работать для любых размеров, заданных в интервале 1-20. Например, если программа прочла размер 5, она должна напечатать: ***** *----* *----* *----* ***** подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
24.08.2011, 03:05     Построить ломаную по заданным вершинам
Цитата Сообщение от grizlik78 Посмотреть сообщение
ну вон Герона ещё можно, хотя как-то не кажется удачным
А вообще-то я тут подумал... Вроде очень даже ничего методом Герона получается.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int is_square_of_odd(int a)
{
    int x = 1, b = a;
    if (a % 8 != 1)
        return 0;
 
    while (b > 3)
    {
        b /= 4;
        x <<= 1;
    }
 
    while (abs(a - x*x) >= 2*x)
        x = (x + a/x) / 2;
 
    return a == x*x || a == (x-1)*(x-1);
}
Возможно выражение в цикле и в возврате можно упростить, но и так уже довольно неплохо.

Добавлено через 9 часов 36 минут
Цитата Сообщение от grizlik78 Посмотреть сообщение
Попробовал бы методом Ньютона, ну вон Герона ещё можно
Забавно то, что итерационная формула Герона это, похоже, и есть итерационный метод Ньютона
На моих компьютерах этот метод работает в среднем в 2 раза медленней, чем с использованием sqrt(). Зато не используется арифметика с плавающей точкой. Ещё бы и без деления обойтись. Эх...
Ну и на всякий случай вариант с sqrt(), хотя он и банальный.
C
1
2
3
4
5
6
7
8
9
int is_square_of_odd(int a)
{
    int x;
    if (a % 8 != 1)
        return 0;
 
    x = sqrt(a);
    return a == x*x;
}
 
Текущее время: 13:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru