1 Востаннє редагувалося User 298 (22.02.2014 23:14:25)

Тема: Знайти суму виразу

Привіт! Прошу допомогти з задачею.
  Знайти суму чисел виду m^2-2m-1, де m=0, 1, 2,…n.
  ТУ: У вхідному потоці дано число n (n<=100). У вихідний - вивести суму чисел.
Приклад:
Вхідні дані    Результат роботи
      2                   -4
Я написав код, який виводить значення виразу до якогось n:

 #include <iostream>
using namespace std;
 int main()
 {
     int n,i=0,j;
     cin>>n;
    
     for (; i*i-2*i-1<n;i++)
     {
       j=i*i-2*i-1;
     cout<<j<<" ";    
         }
     

     system("pause");
     return 0;
     
     }  

Bartash: код слід брати у теги [ code ].

І ось проблема, як додати ці значення, які виведені до n-ого числа..Дякую за допомогу..!

2 Востаннє редагувалося Chemist-i (22.02.2014 22:39:53)

Re: Знайти суму виразу

В чому проблема закинути все в цикл?, але то не є дуже оптимальним, краще зробити так:

ввід n;

double x=0;

for (j=0; j<n; j++){

  int m=n;
  ...
  for (int i=0; i<m; i++)
  {
    x = x + (m*m)-2m-1; //додаєм все зразу
  }
}
...
Вивід x

т.е. два цикли один в одному

3

Re: Знайти суму виразу

Не дуже закручено? :)

#include <iostream>

int calcSum(int /*n*/);

int main()
{
    std::cout << calcSum(2) << std::endl;

    return 0;
}

int calcSum(int n)
{
    if( n < 0)
        return 0;

    int s = n*n - 2*n - 1;

    return s+calcSum(n-1);
}

4 Востаннє редагувалося Chemist-i (23.02.2014 00:02:06)

Re: Знайти суму виразу

Bartash
Може вони ще рекурсію не проходили?

5

Re: Знайти суму виразу

Chemist-i написав:

Bartash
Може вони ще рекурсію не проходили?

Можливо. :)
Та я лінивий трохи (для тактовності ж і спитав про закрученість). :)

6

Re: Знайти суму виразу

Помилка виявилася доволі банальною =) уся справа в умові - i<=n

#include <iostream>
using namespace std;
int main()
{
int n,i=0,j=0;
cin>>n;

for (; i<=n;i++)
{
j=j+i*i-2*i-1;


}
cout<<j;


return 0;

}