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

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

Войти
Регистрация
Восстановить пароль
 
JokerCD
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 41
#1

Вычислить y - C++

04.01.2014, 04:49. Просмотров 332. Ответов 4
Метки нет (Все метки)

Вычислить y= na+(n-1)a+…+a
Понятия не имею как должно выглядеть решение. Помогите, буду очень признателен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 04:49     Вычислить y
Посмотрите здесь:

C++ Вычислить в одномерном массиве вычислить номер максимального элемента

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igoriok1727
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 2
04.01.2014, 05:23     Вычислить y #2
C++
1
2
3
4
5
int y = 0, a = 5, n = 3;//a и n выбираешь по вкусу.
while(n > 0){
    y = y + n*a;
    n--;
}
valeriikozlov
Эксперт C++
4667 / 2493 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.01.2014, 06:43     Вычислить y #3
вариант:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main()
{
    double n;
    int a;
    cin>>n>>a;
    cout<<(n+1)/2*n*a<<endl;
    return 0;
}
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 372
04.01.2014, 09:31     Вычислить y #4
valeriikozlov, Можно подробнее формулу расписать? И еще маленькая просьба, давать шанс для самостоятельного решения ,немного времени ,чтобы подумать даже не студенту ,который задал вопрос (ему нужен просто ответ) ,а тем желающим освоить язык.А то получается ,только родилась на форуме задачка ,тут же ответ.
Вот в этом примере ,как я думаю без цикла никак она не должна решиться. Допустим а=3 п=3 ,ведь получается у=0+а+2*a+3*a и так при любом раскладе.y=a+(n-n)*a+...n*a . Может не правильный ход мысли?

Добавлено через 30 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 #include <cstdlib>
using namespace std;
int main ()
{
    int n,a;
    cin>>n,a;
  
  int p1=0;
    for(int i=n;i>0;i--){
    p1=p1+n*a;
          n--;
      }
      cout<<p1;
return 0;    
}
Вот примерно так,но я в цикле запутался что то...

Добавлено через 28 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 using namespace std;
 int ups(int p);
 int main ()
{
    int n;
    cin>>n;
    cout<< ups(n);
return 0;
}
int ups(int p){
    int n,a;
    int p1=0;
   for(int i=n;i>0;i--){
         n--;
    p1=p1+n*a;
}
 return p1;
}
или так через доп.функцию ,но тоже ошибка в цикле..
valeriikozlov
Эксперт C++
4667 / 2493 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.01.2014, 09:55     Вычислить y #5
Цитата Сообщение от sergei60 Посмотреть сообщение
y=a+(n-n)*a+...n*a . Может не правильный ход мысли?
Не правильно оформленный. смотрим внимательно что получается: y=a+0+a+a*2+...+n*a. Т.е. получается что одно "a" лишний раз суммировали.
Далее см комментарии:
Цитата Сообщение от sergei60 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
*#include <cstdlib>
using namespace std;
int main ()
{
* * int n,a;
* * cin>>n,a;// эта строка должна выглядеть так: cin>>n>>a;
int p1=0;
* * for(int i=n;i>0;i--){
* * p1=p1+n*a;// здесь все правильно считает 
* * * * * n--;
* * * }
* * * cout<<p1;
return 0; * *
}
варианты этого же цикла:
C++
1
2
3
    for(int i=n;i>0;i--){
    p1=p1+i*a;          
      }
C++
1
2
3
4
5
    while(n)
    {
        p1=p1+n*a;
        n--;
    }
Далее см комментарии:
Цитата Сообщение от sergei60 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
*using namespace std;
*int ups(int p);
*int main ()
{
* * int n;
* * cin>>n;
* * cout<< ups(n);
return 0;
}
int ups(int p){
* * int n,a;
* * int p1=0;
* *for(int i=n;i>0;i--){
* * * * *n--;
* * p1=p1+n*a;// Два вопроса: - чему здесь равна a ? - учитывается в общей сумме слагаемое a*n ?
}
*return p1;
}
Добавлено через 5 минут
Цитата Сообщение от sergei60 Посмотреть сообщение
Можно подробнее формулу расписать?
Можно. Имеем y= na+(n-1)a+…+a. Если вынести a за скобки, то в скобках останется n+(n-1)+.. +1 .
То что в скобках вычисляется так: (n+1)/2 - среднее арифметическое значение чисел от 1 до n.
Это среднее арифметическое умножаем на n и получаем: n+(n-1)+.. +1. Далее осталось умножить только на a.
Yandex
Объявления
04.01.2014, 09:55     Вычислить y
Ответ Создать тему
Опции темы

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