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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.77
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 11:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E #1
Как пишутся очень короткие программы на 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
Посмотрите здесь:

C++ Вычислить функцию с точностью 6 знаков после десятичной точки
C++ Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой.
Вывод n знаков после точки средствами c++ C++
C++ Округлить число до 25 знаков после десятичной точки
C++ Вывести в файл число с заданным количеством знаков после точки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
57 / 56 / 19
Регистрация: 09.10.2012
Сообщений: 179
Завершенные тесты: 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
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 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
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
05.08.2013, 12:31     Выведите в выходной файл округленное до n знаков после десятичной точки число E #7
какой смысл в этом?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 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
57 / 56 / 19
Регистрация: 09.10.2012
Сообщений: 179
Завершенные тесты: 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?
Оно определенно выдает неверный ответ
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
05.08.2013, 13:17     Выведите в выходной файл округленное до n знаков после десятичной точки число E #15
Fyret, если бы он еще работал. Я еще ужал до 132, если бы он был рабочий...
Bohes_
4 / 4 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 15:08  [ТС]     Выведите в выходной файл округленное до n знаков после десятичной точки число E #16
А как решить такую задачу за 111 символов?
Драконы
(Время: 1 сек. Память: 16 Мб Сложность: 40%)
Известно, что у дракона может быть несколько голов и его сила определяется числом голов. Но как определить силу драконьей стаи, в которой несколько драконов и у каждого из них определенное число голов? Вероятно, вы считаете, что это значение вычисляется как сумма всех голов? Это далеко не так, иначе было бы слишком просто вычислить силу драконьей стаи. Оказывается, что искомое значение равно произведению значений числа голов каждого из драконов. Например, если в стае 3 дракона, у которых 3, 4 и 5 голов соответственно, то сила равна 3*4*5 = 60. Предположим, что нам известно суммарное значение голов драконьей стаи, как нам вычислить максимально возможное значение силы этого логова драконов? Именно эту задачу Вам и предстоит решить.

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

В единственной строке входного файла INPUT.TXT записано натуральное число N (0 < N < 100) – количество голов драконьей стаи.

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести максимально возможное значение силы, которая может быть у стаи драконов из N голов.
Через ДП или тут есть какая-то формула?
http://********/?main=task&id_task=42

Добавлено через 1 час 7 минут
У меня через ДП выходит 205 символов:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
 
int main()
{
    std::fstream f("input.txt"), o("output.txt",2);
    long long x,i,j, a[100];
    a[1] =1;
    f>>x;
    for (i = 2; i<=x;++i)
    {
        a[i]=i;
        for (j = i-1; j >= i/2; --j)
            a[i]=std:: max(a[i],a[j]*a[i-j]);
    }
    o<<a[x];
    
 
}
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,341
05.08.2013, 15:28     Выведите в выходной файл округленное до n знаков после десятичной точки число E #17
По первой... Возможно нигде не ошибся...
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <fstream>
 
int main() {
    char e[] = "2.71828182845904523536028750";
    std::fstream f ("input.txt"), o("output.txt", 2);
    int a, b;
    f >> a;
    b = a ? a + 1: a;
 
    e[b] += (30043989 >> a) & 1, e[b + 1] = 0;
    o << e;
}
176 символов. Дальше не знаю как жать >_>
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
05.08.2013, 15:30     Выведите в выходной файл округленное до n знаков после десятичной точки число E #18
154, хотя, вроде бы знаю, как короче. Сейчас ещё попробую...
C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
 
main(int p)
{
    std::fstream i("input.txt"), o("output.txt", 2);
    i >> p;
    char s[] = "2.7182818284590452353602875", *q = s + p + !!p;
    *q += s[p + 2] > 52;
    q[1] = 0;
    o << s;
}
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
05.08.2013, 15:33     Выведите в выходной файл округленное до n знаков после десятичной точки число E #19
С учетом предыдущих ошибок я в 162 укладываюсь, но это как-то много, если кто-то и вправду 130 символами обошелся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 15:35     Выведите в выходной файл округленное до n знаков после десятичной точки число E
Еще ссылки по теме:

Задача на струтуру. В выходной файл выведите время, оставшееся от t1 до t2 в формате hh:mm:ss C++
C++ Округление знаков, после точки
Вывести в выходной файл округленное до n знаков после десятичной точки число E C++

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

Или воспользуйтесь поиском по форуму:
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,341
05.08.2013, 15:35     Выведите в выходной файл округленное до n знаков после десятичной точки число E #20
Somebody, неверно. Фейлится на девятке. Или я не по тем правилам округляю?
Yandex
Объявления
05.08.2013, 15:35     Выведите в выходной файл округленное до n знаков после десятичной точки число E
Ответ Создать тему
Опции темы

Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru