Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
artemz
0 / 0 / 1
Регистрация: 24.03.2013
Сообщений: 14
#1

Требуется посчитать сумму целых чисел от 1 до N - C++

08.08.2014, 13:52. Просмотров 2740. Ответов 18
Метки нет (Все метки)

Добрый день подскажите такой вопрос?
решил порешать задачи на этом сайте: [cut]

Сумма
(Время: 1 сек. Память: 16 Мб Сложность: 19%)
Требуется посчитать сумму целых чисел от 1 до N.

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

В единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 104.

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел от 1 до N.

Пример

INPUT.TXT OUTPUT.TXT
5 15

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <fstream>
#include <iomanip> 
#include <stdlib.h>
using namespace std;
int main()
{
    ifstream ouFal("INPUT.TXT",ios::in);
    if (! ouFal)
    {
        cerr << "Ошибака откритие файла " << endl;
        exit(1);
    }
    ofstream inFal("OUTPUT.TXT", ios::out);
    
    long int x = 0, i;
 
    
    while (! ouFal.eof())
    {
        cout << ouFal.eof() << endl;
        ouFal >> x;
        
        if (x < 0 ) 
            x = ((x * (x - 1)) / 2 ) * -1;
        else 
            x = (x * (x + 1)) / 2;
 
    inFal << x << endl;
    }
    inFal.close();
    ouFal.close();
    
    return 0;
}
мое решение и не принимает не пойму что может быть не так неправельно значение пишет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2014, 13:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Требуется посчитать сумму целых чисел от 1 до N (C++):

Посчитать сумму целых чисел в заданном диапазоне - C++
Решала задачу на ********, а при отправке выдает: Wrong answer, в чем проблема?? у меня лично все работает Oo Требуется посчитать сумму...

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

Посчитать сумму цифр всех целых чисел 1 до n - C++
[ход решения в gcc

Ввести с клавиатуры массив из 10 целых чисел, посчитать сумму и вывести на экран - C++
Ввести с клавиатуры массив из 10 целых чисел, посчитать сумму и вывести на экран

Дано 2 массива A и В, целых чисел. Нужно посчитать количество тех чисел которые A[i]>B[i] - C++
Дано 2 массива A и В, целых чисел. Нужно посчитать количество тех чисел которые A&gt;B Как вообще это можно почитать ? Помогите пожалуйста...

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно - C++
Даны два целых числа A и B (A &lt; B). Найти сумму всех целых чисел от A до B включительно. как это реализовать на с++??

18
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
08.08.2014, 14:20 #2
Цитата Сообщение от artemz Посмотреть сообщение
C++
1
if (x < 0 ) x = ((x * (x - 1)) / 2 ) * -1; else x = (x * (x + 1)) / 2;
это че?
0
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.08.2014, 14:27 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
#include <fstream>
 
main() {
  std::fstream i("input.txt"), o("output.txt", 18);
  int n;
  i >> n;
  o << (n > 0 ? n * n + n : (n + 1) * (2 - n)) / 2;
}
0
artemz
0 / 0 / 1
Регистрация: 24.03.2013
Сообщений: 14
08.08.2014, 14:38  [ТС] #4
это формула
это просто чтобы цыклом не перебирать
http://files.school-collection.edu.r...8d0a/word.html

Добавлено через 1 минуту
ребята я зато что ответ верный а когда отправляеш на сайт пишет что значение не правельно
короче не принимает как правельный ответ

Добавлено через 8 минут
все ответ зашитало
BlackIce
спасибо
только вот не понятно
ведь мой код тоже правельный ответ давал
0
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.08.2014, 14:42 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от artemz Посмотреть сообщение
ребята я зато что ответ верный а когда отправляеш на сайт пишет что значение не правельно
Контрпример:

input.txt: -5

sum(1 0 -1 -2 -3 -4 -5) = -14

Ваша программа пишет два значения в выходной файл 1 и -15

никаких while не нужно, просто считываете одно значение и считаете сумму.
0
artemz
0 / 0 / 1
Регистрация: 24.03.2013
Сообщений: 14
08.08.2014, 14:48  [ТС] #6
спасибо

Добавлено через 35 секунд
еше вопрос можно
o("output.txt", 18);
что это 18

Добавлено через 17 секунд
не компилетца у меня

Добавлено через 31 секунду
ios::out = 18
0
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.08.2014, 14:48 #7
Цитата Сообщение от artemz Посмотреть сообщение
cout << ouFal.eof() << endl;
Вот это вы зачем написали?
0
artemz
0 / 0 / 1
Регистрация: 24.03.2013
Сообщений: 14
08.08.2014, 14:50  [ТС] #8
не мог понять почему она двараза писало одно и тоже число
при if (! ouFal.eof()) за был убрать
это делаю по книге пока мало опыта
"Дейтел Х., Дейтел П. - Как программировать на C++"
0
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
08.08.2014, 14:53 #9
Цитата Сообщение от artemz Посмотреть сообщение
еше вопрос можно
o("output.txt", 18);
что это 18
Это грязный хак для Visual C++, который стоит на том сайте

вместо
C++
1
std::fstream i("input.txt"), o("output.txt", 18);
конечно же лучше было написать:
C++
1
2
std::ifstream i("input.txt");
std::ofstream o("output.txt");
и еще
int main() вместо main()
1
artemz
0 / 0 / 1
Регистрация: 24.03.2013
Сообщений: 14
08.08.2014, 14:56  [ТС] #10
ну я дописал void main() так как не было return;
прочил книгу теперь на практике пытаюсь
0
gru74ik
Модератор
Эксперт CЭксперт С++
4351 / 1927 / 209
Регистрация: 20.02.2013
Сообщений: 5,112
Записей в блоге: 22
08.08.2014, 15:52 #11
И лучшим, на мой взгляд, решением будет прочитать одну из книг для начинающих:
  • Прата С. - Язык программирования С++. Лекции и упражнения (2012, 6-е издание)
  • Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му - Язык программирования C++. Базовый курс (2014, 5-е издание)
  • Харви М. Дейтел, Пол Дж. Дейтел - Как программировать на C++ (2008, 5-е издание)

Добавлено через 25 минут
Цитата Сообщение от artemz Посмотреть сообщение
я дописал void main() так как не было return;
Намучаетесь, ежели так будете делать. Стандарт C++ требует, чтобы главная функция:
  • называлась main()
  • была типа int
  • возвращала значение типа int

Классический пример:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
3
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
08.08.2014, 17:09 #12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "greatest.h"
#include <assert.h>
 
int sum_to(const int n)
{
    assert(n > 0);
    int half = n / 2;
    int sum = (n + 1) * half;
    if( 2 * half != n ) {
        ++half;
        sum += half;
    }
    return sum;
}
 
TEST sum_to_1()
{
    ASSERT_EQ(sum_to(1), 1);
    PASS();
}
 
TEST sum_to_2()
{
    ASSERT_EQ(sum_to(2), 3);
    PASS();
}
 
TEST sum_to_3()
{
    ASSERT_EQ(sum_to(3), 6);
    PASS();
}
 
TEST sum_to_100()
{
    ASSERT_EQ(sum_to(100), 5050);
    PASS();
}
 
TEST sum_to_101()
{
    ASSERT_EQ(sum_to(101), 5151);
    PASS();
}
 
SUITE(the_suite)
{
    RUN_TEST(sum_to_1);
    RUN_TEST(sum_to_2);
    RUN_TEST(sum_to_3);
    RUN_TEST(sum_to_100);
    RUN_TEST(sum_to_101);
}
 
GREATEST_MAIN_DEFS();
 
int main(int argc, char **argv) {
    GREATEST_MAIN_BEGIN();      /* command-line arguments, initialization. */
    RUN_SUITE(the_suite);
    GREATEST_MAIN_END();        /* display results */
}
0
Vourhey
Почетный модератор
6490 / 2264 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
08.08.2014, 17:22 #13
Цитата Сообщение от gru74ik Посмотреть сообщение
Стандарт C++ требует, чтобы главная функция:
. . .
была типа int
Как понимаю, здесь имеется в виду возвращаемый тип.
Цитата Сообщение от gru74ik Посмотреть сообщение
возвращала значение типа int
Да ну брось еще придумывать.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4351 / 1927 / 209
Регистрация: 20.02.2013
Сообщений: 5,112
Записей в блоге: 22
08.08.2014, 17:28 #14
Цитата Сообщение от Vourhey Посмотреть сообщение
Да ну брось еще придумывать.
Мог напутать, но, вроде как, main должна возвращать значение int, чтобы сообщать операционной системе, что код успешно завершился. При помощи оператора return, возвращаюшего 0, либо макрос EXIT_SUCSESS. Поправьте, если неправ.
0
Vourhey
Почетный модератор
6490 / 2264 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
08.08.2014, 17:33 #15
Цитата Сообщение от gru74ik Посмотреть сообщение
Мог напутать, но, вроде как, main должна возвращать значение int, чтобы сообщать операционной системе, что код успешно завершился. При помощи оператора return, возвращаюшего 0, либо макрос EXIT_SUCSESS. Поправьте, если неправ.
Не должна, а может. А может и не возвращать. Требования возвращать - нет.

Добавлено через 51 секунду
Цитата Сообщение от gru74ik Посмотреть сообщение
При помощи оператора return, возвращаюшего 0, либо макрос EXIT_SUCSESS
А что, других вариантов нет? если -1 верну, кто-то умрет?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2014, 17:33
Привет! Вот еще темы с ответами:

Написать программу, которая вычисляет сумму первых n целых положительных целых чисел - C++
Написать программу, которая вычисляет сумму первых n целых положительных целых чисел. Количество суммируемых чисел должно вводиться во...

Даны два целых числа А и В (А<В). Найти сумму квадратов всех целых чисел от А до В включительно - C++
Даны два целых числа А и В (А&lt;В). Найти сумму квадратов всех целых чисел от А до В включительно.

Одномерный массив, подскажите как посчитать сумму целых частей ... - C++
#include &lt;stdio.h&gt; int main () { int i, kol_vo=0, sum=0; double mas={1.2, -23.5, 7.8, -3.6, 0.1, 1.7, 12.6}, C; ...

В последовательности целых чисел посчитать количество нечетных элементов - C++
Дана последовательность целых чисел. Посчитать количество нечетных элементов


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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