Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.99
Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
#1

Нужен алгоритм извлечения квадратного корня - C++

20.12.2011, 00:27. Просмотров 10502. Ответов 7
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.Недавно начал изучать C++ и столкнулся с проблемой.Мне необходимо извлечь квадратный корень, но функция sqrt мне не подходит т.к в задаче сказано что нельзя использовать при решении вещественную арифметику.Хотелось бы узнать какой-нибуть быстрый алгоритм т.к сказанно что входное число до 1000000000.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 00:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужен алгоритм извлечения квадратного корня (C++):

Алгоритм для извлечения квадратного корня x из вещественного числа y - C++
Составить блок-схему алгоритма для вычисления квадратного корня x из вещественного числа y. Примечание. Вычисление квадратного корня...

извлечения квадратного корня из комплексного числа - C++
Всем доброго времени суток. такая проблема, не могу посчитать квадратный корень из комплексного числа, все остальное работает ...

Определить функцию для извлечения квадратного корня из эдементов массива - C++
Это всё одно задание ... -.- 1)Определить функцию для извлечения квадратного корня из элементов массива целых чисел. 2)Перегрузите...

Составить программу извлечения точного квадратного корня из n-разрядного числа (n > 40) - C++
Составить программу извлечения точного квадратного корня из n-разрядного числа (n > 40).

Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного - C++
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <string> #include <sstream> #include...

Прототип и тело функции. Алгоритм вычисления квадратного корня - C++
В книге написано: "Если в программе используется функция sqrt, ну это я к примеру, значит для нее должен быть предоставлен прототип. Это...

7
dino-4udo
-41 / 5 / 1
Регистрация: 16.12.2010
Сообщений: 68
20.12.2011, 00:29 #2
По методу Ньютона

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
 
float Sqrt(float A, float x)
{
  float xold;
  do
  {
    xold=x;
    x=(x+A/x)/2.0;
  } while (x!=xold);
  return x;
}
void main(void)
{
  printf("C++ Sqrt(13)=%f,  Sqrt(13)=%f.",sqrt(13),Sqrt(13,3.5));
}
0
Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
20.12.2011, 00:31  [ТС] #3
Нельзя использовать вещественые типы
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.12.2011, 08:31 #4
Цитата Сообщение от Denis St. Посмотреть сообщение
Хотелось бы узнать какой-нибуть быстрый алгоритм т.к сказанно что входное число до 1000000000.
Вам скорее всего нужен двоичный поиск.
0
alkagolik
Заблокирован
20.12.2011, 11:08 #5
Цитата Сообщение от Denis St. Посмотреть сообщение
т.к сказанно что входное число до 1000000000.
это 10^9 или 2^9?
Цитата Сообщение от Denis St. Посмотреть сообщение
Нельзя использовать вещественые типы
... т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{3} \approx 1 или http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{3} \approx 2?
0
Denis St.
44 / 25 / 5
Регистрация: 07.11.2011
Сообщений: 75
20.12.2011, 15:59  [ТС] #6
Дело в том что sqrt принимает как аргумент и возвращает double, но мне нельзя использовать в программе типы float, double только целые int, а задаваемое число как аргумент в моей задачи может быть до 1 000 000 000
0
easybudda
Модератор
Эксперт CЭксперт С++
9728 / 5679 / 972
Регистрация: 25.07.2009
Сообщений: 10,930
20.12.2011, 16:24 #7
Denis St., вот гуглом нашлось: http://algolist.manual.ru/maths/count_fast/intsqrt.php
1
Genag
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 9
06.08.2013, 02:09 #8
C++
1
2
3
4
5
6
7
8
double kor(int x){
    int z = 0;
    while(z*z < x){
        z++;
    }
 
    return z;
}
1
06.08.2013, 02:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2013, 02:09
Привет! Вот еще темы с ответами:

Придумать алгоритм вычисления квадратного корня, не использую функции возведения в степень - C++
Необходимо придумать алгоритм, вычисления квадратного корня, не использую функции возведения в степень и соответственно саму функцию...

Нахождение квадратного корня - C++
3 задание. Си знаю на самом простом уровне, написал код для решения задачи, но не совсем уверен в его правильности, потому прошу знатоков...

Нахождение квадратного корня - C++
Нужно написать функцию нахождения квадратного корня не используя cmath. Решил реализовать итерационную формулу Герона, при компилировании...

вычисления квадратного корня - C++
составить программу вычисления квадратного корня ведённого числа, не применяя функцию sqrt().


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.