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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
MsHassium
2 / 2 / 0
Регистрация: 04.03.2012
Сообщений: 21
#1

Задача 1001 acm.timus.ru - C++

21.03.2012, 18:04. Просмотров 2306. Ответов 3
Метки нет (Все метки)

Исходные данные
Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ.
Результат
Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки.
НЕ могу сообразить как сделать ввод данных!!! Делаю через цикл for,без массивов, но там нужно вводить кол-во элементов, а это по условию не приемлемо. Ступор!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
    
    double a;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        a=sqrt((double)a);
 
        cout<<fixed<<setprecision(4)<<a<<endl;
    }
    return 0;
}
здесь он считает корень, но выдает не в обратном порядке!!! В этом тоже не большая проблема!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 18:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача 1001 acm.timus.ru (C++):

Acm.timus Wrong answer - C++
]Ссылка на задачу Помогите с задачей ошибку выдает все вроде варианты уже предусмотрел. # include &lt;iostream&gt; using namespace std; ...

Acm.timus Wrong answer - C++
Ссылка на задачу Задачу необходимо переписывать в тело сообщения! #include&lt;iostream&gt; using namespace std; int main(){ int S; ...

Acm.timus Runtime error (access violation) - C++
Ограничение времени: 0.5 секунды Ограничение памяти: 64 МБ Наш джип находится в пустыне и должен достичь точки, находящейся на...

Подкиньте несколько вариантов тестов для задачи с acm.timus.ru - C++
Собственно, хочется несколько хитрых вариантов тестов для задачи 1848 http://acm.timus.ru/problem.aspx?space=1&amp;num=1848 Заранее...

Задача Timus - C++
Почему не проходит тест? Может кто знает? http://acm.timus.ru/problem.aspx?space=1&amp;num=1001 #include &lt;vector&gt; int main() ...

Задача на Timus Online Judge, C++. Решена, но - C++
Решил задачу, но выдает ошибку WA на 2 тесте. Не могу даже представить, в чем дело. Задача: 1100. Таблица результатов Ограничение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.03.2012, 20:10 #2
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
#include "math.h"
#include <stdio.h>
int main()
{
#ifndef ONLINE_JUDGE
   freopen("input.txt", "rt", stdin);
   freopen("output.txt", "wt", stdout);
#endif
    double *mas=new double[132000];
    long long temp=0;
    int fl=0;
    int i_mas=0;
    char c;
    while ((int)(c = (char)getchar()) != EOF)
    {
        if((c==' ' || c=='\n') && fl==1)
        {
            fl=0;
            mas[i_mas++]=sqrt((double)temp);
            temp=0;
        }
        else
        {
            if(!(c==' ' || c=='\n'))
            {
                fl=1;
                temp*=(long long)10;
                temp+=(long long)(c-'0');
            }
        }
    }
if(fl)
{           
mas[i_mas++]=sqrt((double)temp);
}
    while(i_mas>0)
    {
        printf("%.5lf\n", mas[(i_mas--)-1]);
    }   
   return 0;
}
1
Nexia
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 8
08.07.2013, 22:42 #3
Друзья, огромная просьба разжевать данную строку подробнейшим образом. Я - начинающий, пытаюсь вкурить построчно, но тут что-то через чур многовато - не понятно что и гуглить )
Цитата Сообщение от valeriikozlov Посмотреть сообщение
while ((int)(c = (char)getchar()) != EOF)
0
lowercase
212 / 201 / 34
Регистрация: 09.05.2012
Сообщений: 494
08.07.2013, 23:20 #4
думаю обьяснять что такое while ненадо.

C++
1
c = (char)getchar()
так как переменная с - тип char, a getchar() - int - преобразовываем значение последнего к типу первого
C++
1
(int)(c = (char)getchar()) != EOF
т.к. EOF это #define EOF -1, все целочисельные литералы по умолчанию имеют тип int. а с - тип char потому приводим его к более широкому типу - int с помощью преобразования.

зы: операция (<имя_типа>)<выражение> называется приведеним типа. вроде как осталась в наследство от языка Си, в плюсах же вроде как юзают эти ваши static_cast<>(), dinamic_cast<>() и многое другое.

Добавлено через 15 минут
будь переменная с типа int, выше упомянутая строчка выглядела бы вот так:
C++
1
while ((c = getchar()) != EOF)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2013, 23:20
Привет! Вот еще темы с ответами:

Написание кодека и ACM драйвера - C++
Вопрос к спецам по звуку. Пишу ACM-драйвер для конвертирования звука из своего формата в PCM, вобщем чтоб проигрывался разными плэерами. И...

Массив из 1001 значения - C++
Кому не составит труда, создайте, пожалуйста, массив из 1001 значения. Сохраните в нем все значения функции f(x)=√x-sin(x) на отрезке c...

Подгонка решения задачи под тесты Timus Online Judge, С++ - C++
На Timus Online Judge столкнулся с довольно простой задачей, с которой у меня возникли некоторые проблемы. Задача: Программист...

Простенькая задачка из Timus Online Judge(1005. Куча камней) - C++
Собственно условие: http://acm.timus.ru/problem.aspx?space=1&amp;num=1005 Моё решение: #include &lt;iostream&gt; using namespace std; void...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2013, 23:20
Ответ Создать тему
Опции темы

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