Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/49: Рейтинг темы: голосов - 49, средняя оценка - 4.98
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51

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

05.08.2013, 11:17. Показов 9728. Ответов 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 символов. Как это у них получается?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.08.2013, 11:17
Ответы с готовыми решениями:

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

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

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

53
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
05.08.2013, 12:10
Цитата Сообщение от 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 символов мне самому интересно.
0
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
05.08.2013, 12:22
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 знак. Только не ругайте
0
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:22  [ТС]
Цитата Сообщение от 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++ в проверяющей системе обязателен
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.08.2013, 12:24
Цитата Сообщение от Bohes_ Посмотреть сообщение
return 0; для C++ в проверяющей системе обязателен
main по стандарту возвращает 0, если нет retrun'а.

Добавлено через 58 секунд
P. S. Да, и для минимального размера надо подгонять не под стандарт, а под тот компилятор, который там.
1
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:25  [ТС]
Microsoft Visual C++ 7.1 там
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
05.08.2013, 12:31
какой смысл в этом?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
05.08.2013, 12:36
Цитата Сообщение от Bohes_ Посмотреть сообщение
Microsoft Visual C++ 7.1 там
и что?
0
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:43  [ТС]
Цитата Сообщение от salam Посмотреть сообщение
какой смысл в этом?
интерес

Добавлено через 6 минут
Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
0
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
05.08.2013, 12:45
Цитата Сообщение от mishelle92 Посмотреть сообщение
131 знак. Только не ругайте
gcc в отличие от msvc не компилирует. Но подгонять надо под используемый компилятор, да.
1
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 12:50  [ТС]
Цитата Сообщение от Bohes_ Посмотреть сообщение


Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
Значит код в 130 символов пишется иначе
0
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
05.08.2013, 12:50
Цитата Сообщение от Bohes_ Посмотреть сообщение
Добавлено через 6 минут
Fyret, mishelle92, ваши решения не совсем верны:например, при тесте "25" выводится "2.7182818284590450907955983"
Действительно, мой код неверно работает при точности > 16...
1
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
05.08.2013, 13:11
Подправленное решение 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?
1
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 13:17  [ТС]
Цитата Сообщение от 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?
Оно определенно выдает неверный ответ
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
05.08.2013, 13:17
Fyret, если бы он еще работал. Я еще ужал до 132, если бы он был рабочий...
0
5 / 5 / 0
Регистрация: 18.06.2013
Сообщений: 51
05.08.2013, 15:08  [ТС]
А как решить такую задачу за 111 символов?
Драконы
(Время: 1 сек. Память: 16 Мб Сложность: 40%)
Известно, что у дракона может быть несколько голов и его сила определяется числом голов. Но как определить силу драконьей стаи, в которой несколько драконов и у каждого из них определенное число голов? Вероятно, вы считаете, что это значение вычисляется как сумма всех голов? Это далеко не так, иначе было бы слишком просто вычислить силу драконьей стаи. Оказывается, что искомое значение равно произведению значений числа голов каждого из драконов. Например, если в стае 3 дракона, у которых 3, 4 и 5 голов соответственно, то сила равна 3*4*5 = 60. Предположим, что нам известно суммарное значение голов драконьей стаи, как нам вычислить максимально возможное значение силы этого логова драконов? Именно эту задачу Вам и предстоит решить.

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

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

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести максимально возможное значение силы, которая может быть у стаи драконов из N голов.
Через ДП или тут есть какая-то формула?
http://acmp.ru/?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];
    
 
}
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
05.08.2013, 15:28
По первой... Возможно нигде не ошибся...
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 символов. Дальше не знаю как жать >_>
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.08.2013, 15:30
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;
}
2
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
05.08.2013, 15:33
С учетом предыдущих ошибок я в 162 укладываюсь, но это как-то много, если кто-то и вправду 130 символами обошелся.
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
05.08.2013, 15:35
Somebody, неверно. Фейлится на девятке. Или я не по тем правилам округляю?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2013, 15:35
Помогаю со студенческими работами здесь

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

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

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

Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой.
Только начинаю программировать на с/с++ и столкнулась с логическими выражениями, простейшие задачи могу решить а в эту никак не могу...

Найдите такое число x, что x^2+√x=C , с точностью не менее 6 знаков после точки
Найдите такое число x, что x^2+√x=C , с точностью не менее 6 знаков после точки. Я думал, что это должно работать так, но получается...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru