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

Цикл - C++

Восстановить пароль Регистрация
 
mckent
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 14
28.11.2010, 11:55     Цикл #1
Добрый день.Помогите решить задачу с использыванием циклов:
(1+2)+(1+2+3)+...+(1+2+3...+50)
Заранее благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2010, 11:55     Цикл
Посмотрите здесь:

Цикл for C++
цикл for... C++
Цикл for C++
цикл do и while C++
цикл While C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.11.2010, 12:01     Цикл #2
  1. sum = 0, a = 1, i = 2;
  2. если i > 50, переходим к пункту 4;
  3. a+=i; sum += a; ++i, переход к пункту 2;
  4. печать sum.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
28.11.2010, 12:02     Цикл #3
C++
1
2
3
4
int sum=0,i;
 
for (i<0;i<50;i++)
{sum=sum+i;}
mckent
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 14
28.11.2010, 12:07  [ТС]     Цикл #4
А какие #include надо использывать в задаче?
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.11.2010, 12:10     Цикл #5
Цитата Сообщение от mckent Посмотреть сообщение
А какие #include надо использывать в задаче?
По идее - никаких. Но если ты хочешь посмотреть результат работы своей программы хотя бы не через отладчик, то stdio.h (если пишешь на С) или iostream (если пишешь на С++)
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 12:18     Цикл #6
legend, у Вас какой-то странный цикл
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main ()
{ int sum=0, N; N=50;
for (int i=0; i<=N; i++)
sum=sum+i;
 
printf ("SUMMA=%d", sum);
 
getch ();
return 0;
}
вот текст полной прогрмаммы

Добавлено через 1 минуту
Цитата Сообщение от legend Посмотреть сообщение
C
1
for (i<0;i<50;i++)
неужели это работает
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
28.11.2010, 12:32     Цикл #7
go,

ну эт на скорую руку я написал.. оно работает.. до 49 номера

ну можно тада уж и так

C++
1
    for (i<1;i<=50;i++)
Добавлено через 1 минуту
просто уже после матриц привычка не обращать на это внимание...

Добавлено через 5 минут
ну и прикольно потом по 10 мин сидеть и думать почему прога неправильно работает =)
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
28.11.2010, 12:38     Цикл #8
Цитата Сообщение от legend Посмотреть сообщение
int sum=0,i;
for (i<1;i<=50;i++)
{sum=sum+i;}
да это не та последовательность что указана в автором это последовательность
1+2+3+4...
а надо
(1+2)+(1+2+3)+...+(1+2+3...+50)
вот алгоритм:
C
1
2
3
4
5
for(j = 2, i = 3; i <= 50; ++i)
{
     sum += 1 + j;
     j += i;     
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 12:44     Цикл #9
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main ()
{ int sum=0, N, i, c=0; N=50;
for ( i=0; i<=N; i++)
{  c+=i;  sum+=c;  }
 
printf ("SUMMA=%d", sum);
 
getch ();
return 0;
}
Добавлено через 12 секунд
norge_goth, спасибо исправил
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.11.2010, 12:47     Цикл #10
Цитата Сообщение от norge_goth Посмотреть сообщение
да это не та последовательность что указана в автором это последовательность
1+2+3+4...
а надо
(1+2)+(1+2+3)+...+(1+2+3...+50)
Всего лишь надо добавить плюсик перед знаком равно
C++
1
sum += sum+i;
Цитата Сообщение от norge_goth Посмотреть сообщение
C++
1
2
3
4
5
for(j = 2, i = 3; i <= 50; ++i)
{
 sum += 1 + j;
 j += i; 
}
Какой-то "партизанский" вариант.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 12:55     Цикл #11
kazak, ваш вариант не правилен
вот мой http://codepad.org/tpPVbcz4
вот ваш http://codepad.org/Tb9HlW5F
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
28.11.2010, 12:57     Цикл #12
Цитата Сообщение от kazak Посмотреть сообщение
Какой-то "партизанский" вариант.
народ, вы неправильно разложили последовательность, она не раскладывается в последовательное суммирование, то есть
(1+2) + (1+2+3) + (1+2+3+4) + (1+2+3+4+5) +... если разложить

1 + 2 + 3 + 4 + 5 + 7 + 12 +..
это арифметическая прогрессия если в каждой скобке убрать единицу
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.11.2010, 12:59     Цикл #13
norge_goth,
мой последний код как раз для этой подходит
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.11.2010, 13:01     Цикл #14
Цитата Сообщение от norge_goth Посмотреть сообщение
1 + 2 + 3 + 4 + 5 + 7 + 12 +..
это арифметическая прогрессия если в каждой скобке убрать единицу
странные у тебя арифметические прогрессии...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.11.2010, 13:09     Цикл #15
Цитата Сообщение от go Посмотреть сообщение
kazak, ваш вариант не правилен
Моего варианта сдесь нет

Цитата Сообщение от norge_goth Посмотреть сообщение
народ, вы неправильно разложили последовательность, она не раскладывается в последовательное суммирование, то есть
(1+2) + (1+2+3) + (1+2+3+4) + (1+2+3+4+5) +... если разложить
А по моему скромному мнению народ правильно понял как надо вычислять.

Обощенные идеи Nameless One'а и legend, без опечаток.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
int main()
{
   int sum = 1;
 
   for (int i = 2; i <= 50; i++)
      sum += sum+i;
   cout << "Sum = " << sum << endl;
   return 0;
}
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
28.11.2010, 13:12     Цикл #16
Цитата Сообщение от Nameless One Посмотреть сообщение
странные у тебя арифметические прогрессии...
1 + 2
Цитата Сообщение от Nameless One Посмотреть сообщение
странные у тебя арифметические прогрессии...
я же сказал без общей единицы, вот

(1 + 2) + (1 + 5) + (1 + 9) + (1 + 14)
если взять вторые цифры, то что получается?

2, 5, 9, 14 - вот и есть та самая арифметическая прогрессия
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.11.2010, 13:19     Цикл #17
norge_goth, Если упрощенно, то арифметическая прогрессия - это числовая последовательность, в которой разность между любыми двумя соседними членами постоянна.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.11.2010, 13:21     Цикл #18
Цитата Сообщение от kazak Посмотреть сообщение
norge_goth, Если упрощенно, то арифметическая прогрессия - это числовая последовательность, в которой разность между любыми двумя соседними членами постоянна.
Вот именно, а это ни разу не арифметическая прогрессия:
Цитата Сообщение от norge_goth Посмотреть сообщение
1 + 2 + 3 + 4 + 5 + 7 + 12 +..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 13:23     Цикл
Еще ссылки по теме:

цикл do - while C++
C++ Цикл do while.
C++ Цикл while

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

Или воспользуйтесь поиском по форуму:
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
28.11.2010, 13:23     Цикл #19
Цитата Сообщение от kazak Посмотреть сообщение
norge_goth, Если упрощенно, то арифметическая прогрессия - это числовая последовательность, в которой разность между любыми двумя соседними членами постоянна.
да я не прав тут с арифметической прогрессией

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
Вот именно, а это ни разу не арифметическая прогрессия:
это не арифметическая прогрессия, а ряд
2, 5, 9, 14
Yandex
Объявления
28.11.2010, 13:23     Цикл
Ответ Создать тему
Опции темы

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