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

Посчитать сумму целых чисел в заданном диапазоне

30.04.2012, 05:18. Показов 13476. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решала задачу на acmp.ru, а при отправке выдает: Wrong answer, в чем проблема?? у меня лично все работает Oo

Требуется посчитать сумму целых чисел от 1 до N. (Занести в input файл значение N, и вывести в output файл, результат)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
 
using namespace std;
 
int main()
{
    int N;
    double sum;
    ifstream x("input.txt");
    x>>N;
    sum=(1 + N)/2*N;
    ofstream y("output.txt");
    y<<sum;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.04.2012, 05:18
Ответы с готовыми решениями:

Найти сумму целых чисел в заданном диапазоне
Ввести два целых числа N1 и N2. Если N1 &gt;N2, найти сумму целых чисел в диапазоне N1 ... N2. Если N2 больше N1, найти сумму целых чисел в...

Найти сумму всех целых чисел в заданном диапазоне
Даны два целых числа А и В (А &lt;В). Найти сумму всех целых чисел А до B включительно

Функция находящая сумму целых чисел в заданном диапазоне
Помогите пожалуйста дописать, вот условие: Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел от A до B...

16
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
30.04.2012, 13:05
datileo, у тебя тут целочисленное деление происходит, из-за этого неверно
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
30.04.2012, 13:19
Причём само по себе целочисленное деление здесь вполне допустимо, но делить надо чётное.
Например:
C++
1
(1 + N)*N/2;
Но тут есть опасность переполнения при умножении, даже если конечный результат помещается в переменную.
Можно проверять N на чётность, если чётно то так
C++
1
N/2*(1 + N);
Иначе как в исходном варианте.
Ну, а чтобы не заморачиваться, можно действительно использовать деление с плавающей точкой.
C++
1
N/2.0*(1 + N);
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
30.04.2012, 13:38
datileo, там n может быть как положительным так и отрицательным
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> 
#include <cmath>
using namespace std;
 
int main(void)
{
    freopen("input.txt","r", stdin);
    freopen("output.txt", "w", stdout);
    int n, s;
    cin >> n;   
    s = (1 + n) * (abs(n / 2.) + (n < 1));
    cout << s;
    return 0;
}
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
30.04.2012, 13:40
softmob,
написано "целых чисел от 1 до N."
значит не может быть отрицательным
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
30.04.2012, 13:42
sandye51, "В единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 10^4."
http://acmp.ru/?main=task&id_task=2
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.04.2012, 13:48
вот как правильно сумму считать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
template <unsigned N>
struct sum {
   static const unsigned value = N + sum<N-1>::value;
};
 
template <>
struct sum<1> {
   static const unsigned value = 1;
};
 
int main() {
   const unsigned N = 10;
   std::cout << sum<N>::value << std::endl;
}
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
30.04.2012, 14:01
alex_x_x, ага, особенно когда число в файле задано
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.04.2012, 14:17
sandye51, в ++ к сожалению да, но на лиспе вполне можно было и в рантайме сгенерировать
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.04.2012, 14:58
Блин, такая шикарная идея в голову пришла, и не прокатило.
C++
1
2
3
4
5
6
7
8
9
#include <fstream>
 
main()
{
    int n =
    #include "input.txt"
    ;
    std:: ofstream("output.txt") << (1 + abs(n)) * n / 2  + (n < 1);
}
Это было бы на 100 символов(ну и еще без проблем можно ужать до 99).
Но нет, Compilation Error. Видимо, в момент компилирования input.txt еще нету.
Придется удовольствоваться своими 102 символами.
1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.04.2012, 15:00
diagon, какой грязный хак, чтение из файла во время компиляции
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
30.04.2012, 15:02
Цитата Сообщение от diagon Посмотреть сообщение
Но нет, WA1. Видимо, в момент компилирования input.txt еще нету. А с другой стороны, тогда Compilation Error был бы. Странно это...
Ничего странного. Компилируется программа 1 раз, а запускается много раз с разными input.txt
0
30.04.2012, 15:04

Не по теме:

Цитата Сообщение от grizlik78 Посмотреть сообщение
Ничего странного. Компилируется программа 1 раз, а запускается много раз с разными input.txt
Нет, это я ошибся, Compilation Error был( Уже поправился
Но идея была шикарная...

0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.04.2012, 15:11
Цитата Сообщение от diagon Посмотреть сообщение
#include <fstream>
main()
{
int n =
#include "input.txt"
;
std:: ofstream("output.txt") << (1 + abs(n)) * n / 2 + (n < 1);
}

diagon, предлагаю объединенный вариант DD

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
 
template <unsigned N>
struct sum {
  static const unsigned value = N + sum<N-1>::value;
};
 
template <>
struct sum<1> {
  static const unsigned value = 1;
};
 
int main() {
  const unsigned N = 
    #include "input.txt"
  ;
  std:: ofstream("output.txt")  << sum<N>::value;
}
1
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
30.04.2012, 15:18
alex_x_x, и встроить это в какой-нибудь LibreOffice Calc.
"Вы хотите посчитать новую сумму? Подождите часиков 5, я сейчас скомпилирую..."
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
30.04.2012, 15:20
grizlik78, ну придумали же MPL, а по его меркам это даже не hello world
0
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 3
12.01.2016, 13:14
А можно объяснить значение формулы ? А именно почему там после двойки точка и что означает это - (n < 1). Я понимаю что n больше 1, но как это суммируется ? То есть если н больше единицы, то прибавить ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2016, 13:14
Помогаю со студенческими работами здесь

Посчитать сумму целых чисел в заданном интервале
Помогите решить: Требуется посчитать сумму целых чисел от 1 до N включительно, где N по модулю не превосходит 10000. Вход 10 ...

Написать программу, которая находит сумму всех целых нечетных чисел в заданном диапазоне
Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователе. #include &lt;iostream&gt; ...

В заданном диапазоне целых чисел подсчитать количество чисел, у которых есть две одинаковые цифры
file:///D:/Downloads/homework%206.pdf помогите ПЖ.Срочно.

Сформировать массив случайных целых чисел в заданном диапазоне
Такая вот задачка не получается решить(написать) её. (хочу понять-разобраться что и как) Сформировать массив А из 20 случайных целых...

Напечатать квадраты всех целых чисел в заданном диапазоне
Напечатать квадраты всех целых чисел от 0 до 𝑁, используя только операции сложения и вычитания, не используя вложенных циклов


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru