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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.77
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
#1

Выведите в выходной файл округленное до n знаков после десятичной точки число E - C++

05.08.2013, 11:17. Просмотров 6035. Ответов 53
Метки нет (Все метки)

Как пишутся очень короткие программы на C++ или C (менее 150 символов, не считая пробелов и табуляций)?
Например, задача
Выведите в выходной файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки, равно 2.7182818284590452353602875.

Входные данные

Входной файл INPUT.TXT содержит целое число n (0 ≤ n ≤ 25).

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.
Вот мое решение на 255 символов:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream>,<string>
 
int main()
{
    std::string e = "2.71828182845904523536028750";
    std::ifstream f ("input.txt");
    std::ofstream o("output.txt");
    int a,i;
    
    f >> a;
    if (a==0) 
            o << 3;
         else
        {
            if (e[a+2] > 52) e[a+1]++;
            for (i=0; i <= a+1 ;++i)
                o<<e[i];
        }   
    
    return 0;
}
Некоторым удается написать решения на 130, 156, 171 символов. Как это у них получается?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 11:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E
Посмотрите здесь:

Вывести в выходной файл округленное до n знаков после десятичной точки число E - C++
Выведите в выходной файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки,...

Округлить число до 25 знаков после десятичной точки - C++
Есть простая задача: вот я ее решаю таким способом, т.к в задании написано округлить #include &lt;fstream&gt; #include &lt;string&gt;...

Вывести в файл число с заданным количеством знаков после точки - C++
Как это сделать, нигде не нашёл.(

Округление числа до n знаков после десятичной точки - C++
Решил задачу для новичков по C++. Задача совсем для зелёных новичков, кто только-только начал изучать C++, и у меня есть ощущение, что её...

Выведите первую цифру числа после десятичной точки - C++
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. Пример Входные данные: 14.85 ...

Вычислить функцию с точностью 6 знаков после десятичной точки - C++
)Вычислить функцию f(x,a)= при x=0.4, 0.6,..., 1.2 и a=2, 3, 4, 5 с точностью 6 знаков после десятичной точки.

Задача на струтуру. В выходной файл выведите время, оставшееся от t1 до t2 в формате hh:mm:ss - C++
Дано время t1 и время t2. Гарантируется, что t1 и t2 -время одного дня, а также что t1&lt;t2. Определить, сколько времени пройдет от t1 до t2....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
05.08.2013, 12:10     Выведите в выходной файл округленное до n знаков после десятичной точки число E #2
Цитата Сообщение от Bohes_ Посмотреть сообщение
Как это у них получается?
Они как минимум читают документацию языка. Вот мое решение в 143 символа:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
 
int main()
{
    std::ifstream i( "input.txt" );
    int p;
    i >> p;
    std::ofstream o( "output.txt" );
    o.precision( p+1 );
    o << 2.7182818284590452353602875;
}
Как решить в 130 символов мне самому интересно.
mishelle92
61 / 60 / 20
Регистрация: 09.10.2012
Сообщений: 190
Завершенные тесты: 1
05.08.2013, 12:22     Выведите в выходной файл округленное до n знаков после десятичной точки число E #3
C++
1
2
3
4
5
6
7
8
9
10
#include <fstream>
 
int main()
{
    std::fstream i( "input.txt" ), o( "output.txt", 2);
    int p;
    i >> p;
    o.precision(++p);
    o << 2.7182818284590452353602875;
}
131 знак. Только не ругайте
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:22  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #4
Цитата Сообщение от Fyret Посмотреть сообщение
Они как минимум читают документацию языка. Вот мое решение в 143 символа:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
 
int main()
{
    std::ifstream i( "input.txt" );
    int p;
    i >> p;
    std::ofstream o( "output.txt" );
    o.precision( p+1 );
    o << 2.7182818284590452353602875;
}
Как решить в 130 символов мне самому интересно.
return 0; для C++ в проверяющей системе обязателен
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
05.08.2013, 12:24     Выведите в выходной файл округленное до n знаков после десятичной точки число E #5
Цитата Сообщение от Bohes_ Посмотреть сообщение
return 0; для C++ в проверяющей системе обязателен
main по стандарту возвращает 0, если нет retrun'а.

Добавлено через 58 секунд
P. S. Да, и для минимального размера надо подгонять не под стандарт, а под тот компилятор, который там.
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:25  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #6
Microsoft Visual C++ 7.1 там
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 725
05.08.2013, 12:31     Выведите в выходной файл округленное до n знаков после десятичной точки число E #7
какой смысл в этом?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.08.2013, 12:36     Выведите в выходной файл округленное до n знаков после десятичной точки число E #8
Цитата Сообщение от Bohes_ Посмотреть сообщение
Microsoft Visual C++ 7.1 там
и что?
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:43  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #9
Цитата Сообщение от salam Посмотреть сообщение
какой смысл в этом?
интерес

Добавлено через 6 минут
Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
05.08.2013, 12:45     Выведите в выходной файл округленное до n знаков после десятичной точки число E #10
Цитата Сообщение от mishelle92 Посмотреть сообщение
131 знак. Только не ругайте
gcc в отличие от msvc не компилирует. Но подгонять надо под используемый компилятор, да.
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:50  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #11
Цитата Сообщение от Bohes_ Посмотреть сообщение


Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
Значит код в 130 символов пишется иначе
mishelle92
61 / 60 / 20
Регистрация: 09.10.2012
Сообщений: 190
Завершенные тесты: 1
05.08.2013, 12:50     Выведите в выходной файл округленное до n знаков после десятичной точки число E #12
Цитата Сообщение от Bohes_ Посмотреть сообщение
Добавлено через 6 минут
Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
Действительно, мой код неверно работает при точности > 16...
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
05.08.2013, 13:11     Выведите в выходной файл округленное до n знаков после десятичной точки число E #13
Подправленное решение mishelle92, 137 символов:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
 
int main()
{
    std::fstream i( "input.txt" ), o( "output.txt", 2 );
    int p;
    i >> p;
    char s[28] = "2.7182818284590452353602875";
    s[p+2] = 0;
    o << s;
}
Как же ужать до 130?
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 13:17  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #14
Цитата Сообщение от Fyret Посмотреть сообщение
Подправленное решение mishelle92, 137 символов:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
 
int main()
{
    std::fstream i( "input.txt" ), o( "output.txt", 2 );
    int p;
    i >> p;
    char s[28] = "2.7182818284590452353602875";
    s[p+2] = 0;
    o << s;
}
Как же ужать до 130?
Оно определенно выдает неверный ответ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 13:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E
Еще ссылки по теме:

Округление знаков, после точки - C++
Столкнулся с проблемой при работе с float float x1 = 1.0000000000000000; float x2 = x1 + 0.111111111111; float x3 = x2 +...

Количество знаков до и после точки - C++
К примеру, есть число 123.0087 и мне нужно, чтобы вывело в textBox1 число 3 - количество знаков до точки; и в textBox2 число 4 - количество...

Количество знаков после точки в to_string - C++
double t1=24.44; double t2=34.44; string line=&quot;&quot;; line=line+std::to_string(t1)+&quot; &quot;+std::to_string(t2); std::cout &lt;&lt; line; ...

Вывод n знаков после точки средствами c++ - C++
Доброго времени суток. Как можно вывести n знаков после точки средствами c++, cout умеет это делать? PS. Не используя...

Вывести первую цифру после десятичной точки. - C++
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться...


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

Или воспользуйтесь поиском по форуму:
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
05.08.2013, 13:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E #15
Fyret, если бы он еще работал. Я еще ужал до 132, если бы он был рабочий...
Yandex
Объявления
05.08.2013, 13:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E
Ответ Создать тему
Опции темы

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