Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.79/43: Рейтинг темы: голосов - 43, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
1

Обратный корень

04.11.2012, 20:40. Показов 8485. Ответов 20
Метки нет (Все метки)

Пожалуйста, помогите решить задачу, не получается уже месяц (если решать с массивами, то нужно создавать по условию задачи массив размером от 0 до 10 в 18 степени - получается слишком большой массив).

Если кто догадывается, то пожалуйста пришлите код к непокорной задаче , не дающая покоя. Буду очень благодарен.


1001. Обратный корень
Ограничение времени: 2.0 секунды
Ограничение памяти: 16 МБ

Эта задача настолько проста, что авторы даже поленились сочинить для нее условие!
Исходные данные
Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ.
Результат
Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки.

Пример
исходные данные
1427 0

876652098643267843
5276538

результат

2297.0716
936297014.1164
0.0000
37.7757
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2012, 20:40
Ответы с готовыми решениями:

Обратный корень
Исходные данные Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018),...

1001. Обратный корень - Wrong Answer: 3
На Timus Online Judge мое решение не проходит задачу 1001 - Обратный корень. На 3-ем тесте пишет...

Найти корень уравнения методом последовательных итераций.Второй корень вычисляет неверно
Задание:Написать программу для вычисления методом последовательных итераций уравнения x=Aexp(-x)....

Как в строке заменить обратный слэш на двойной обратный слэш ?
Есть строка std::wstring str = L"C:\Program Files\Common Files\new folder\1.0"; Как в ней...

20
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
04.11.2012, 21:00 2
Цитата Сообщение от лыс Посмотреть сообщение
если решать с массивами, то нужно создавать по условию задачи массив размером от 0 до 10 в 18 степени - получается слишком большой массив
Вы неправильно поняли условие задачи. Это значение чисел лежит в указаном диапазоне. А размер массива определяется этой фразой:
Цитата Сообщение от лыс Посмотреть сообщение
Размер входного потока не превышает 256 КБ.
Мне хватило double mas[132000].
1
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
09.11.2012, 17:33  [ТС] 3
Но всё равно, какой код на С++?
0
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
10.11.2012, 06:02 4
Цитата Сообщение от лыс Посмотреть сообщение
Но всё равно, какой код на С++?
Покажите лучше Ваш код. Помогу доделать.
0
1336 / 987 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
10.11.2012, 10:37 5
лыс, откуда задача?
valeriikozlov, а как вы обеспечили отсутствие потери точности?
0
526 / 343 / 12
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.11.2012, 11:13 6
У тебя в задаче квадратный корень надо вывести, а не обратный квадратный корень.
Для обратного корня есть алгоритм используемый в графике.
0
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
10.11.2012, 11:26 7
Цитата Сообщение от iama Посмотреть сообщение
valeriikozlov, а как вы обеспечили отсутствие потери точности?
использовал sqrt(), этого хватило
0
1336 / 987 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
10.11.2012, 11:45 8
valeriikozlov, вообще-то 64-битное число нельзя даже поместить в double без потерь точности.
0
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
10.11.2012, 11:46  [ТС] 9
Ссылка на задачу: http://acm.timus.ru/problem.aspx?space=1&num=1001

Я никак не могу понять, какого размера создавать массив, и когда программа должна закончить ввод и запоминание в массив чисел. В этом-то и сложность задачи.
0
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
11.11.2012, 07:40 10
Цитата Сообщение от лыс Посмотреть сообщение
Я никак не могу понять, какого размера создавать массив, и когда программа должна закончить ввод и запоминание в массив чисел. В этом-то и сложность задачи.
Подходящий размер массива написан выше в этой теме.
Программа должна закончить ввод, когда кончится входной поток. Там же на acm.timus.ru есть раздел, как это делать:
http://acm.timus.ru/help.aspx?topic=cpp
пункт "Ввод/вывод"
Запоминать числа необязательно. Сразу вычисляете квадратный корень и записываете его в массив, о котором писал в этой теме.
1
1336 / 987 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
11.11.2012, 12:28 11
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
#include <iostream>
#include <iomanip>
#include <vector>
#include <map>
#include <string>
#include <cstring>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
int main()
{
    double n;
    stack <double> s;
 
    while (cin >> n)
        s.push(sqrt(n));
 
    while (!s.empty())
    {
        cout << fixed << setprecision(6) << s.top() << endl;
        s.pop();
    }
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
11.11.2012, 15:09  [ТС] 12
Спасибо всем большое. Очень помогли!
0
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.11.2012, 17:17 13
Цитата Сообщение от iama Посмотреть сообщение
вообще-то 64-битное число нельзя даже поместить в double без потерь точности.
в самой первой разминочной задаче для ознакомления с системой не стоит так заморачиваться, ведь для того она и разминочная.
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 51
04.01.2017, 00:48 14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
 
    vector<double> A;
    double N;
    while (cin >> N)
    {
        A.push_back(N);
    }
    cout.precision(4);
    for (int i = A.size(); i--;)
    {
        cout << fixed << sqrt(A[i]) << endl;
    }
 
    return 0;
}
Я так решил задачу. Добавляю элементы в вектор и уже обратно вывожу элементы в корне
0
Эксперт CЭксперт С++
5064 / 2251 / 331
Регистрация: 20.02.2013
Сообщений: 5,602
Записей в блоге: 19
04.01.2017, 01:33 15
Bryan Castle, не скомпилируется. Заголовочные файлы забыли.
0
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 51
04.01.2017, 11:39 16
ну все библиотеки считываются с <bits/stdc++.h> .
Ну если компилятор не может,то держите все используемые библиотеки
#include <iostream>
#include <cmath>
#include <vector>
0
2620 / 2209 / 236
Регистрация: 03.07.2012
Сообщений: 7,979
Записей в блоге: 1
04.01.2017, 11:52 17
А ничего, что тема была создана более 4 лет назад?
0
Любитель чаепитий
3586 / 1686 / 519
Регистрация: 24.08.2014
Сообщений: 5,705
Записей в блоге: 1
04.01.2017, 11:58 18
Цитата Сообщение от gru74ik Посмотреть сообщение
Заголовочные файлы забыли.
А вот содержимое <bits/stdc++.h>
Цитата Сообщение от bits/stdc++.h
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// C++ includes used for precompiling -*- C++ -*-
 
// Copyright (C) 2003-2016 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
 
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
 
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.
 
/** @file stdc++.h
 *  This is an implementation file for a precompiled header.
 */
 
// 17.4.1.2 Headers
 
// C
#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
 
#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cuchar>
#include <cwchar>
#include <cwctype>
#endif
 
// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
 
#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <codecvt>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif
 
#if __cplusplus >= 201402L
#include <shared_mutex>
#endif
0
Эксперт CЭксперт С++
5064 / 2251 / 331
Регистрация: 20.02.2013
Сообщений: 5,602
Записей в блоге: 19
04.01.2017, 12:07 19
Цитата Сообщение от GbaLog- Посмотреть сообщение
А вот содержимое <bits/stdc++.h>
Да, это я глупость сказал, признаю. "Смейтесь дети, смейтесь. Коршун, приятного аппетита!" (с)
0
1480 / 944 / 811
Регистрация: 30.04.2016
Сообщений: 3,298
04.01.2017, 13:02 20
Эту задачу уже решал и выкладывал...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2017, 13:02

Обратный корень
Объясните пожалуйста , что такое потоки на примере этой задачи: ...

Обратный корень
Исходные данные Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018),...

Обратный корень
Добрый вечер, господа! Давно интересует данная задача, можете помочь решить? Я не понимаю как...

1001. Обратный корень
Задача отсюда http://acm.timus.ru/problem.aspx?space=1&amp;num=1001 Кстати, на самом сайте есть 2...

1001. Обратный корень
Собственно задача. Не могу сообразить, как правильно читать поток, подскажите пожалуйста ...

Вычислить обратный корень числа
Исходные данные: Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018),...


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

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

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