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

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

30.04.2012, 05:18. Показов 13535. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru