12.5.6. Napisati program koji će za učitanu vrijednost N izračunati vrijednost izraza i ispisati::

Opis rješenja: Može se koristiti knan := k; za početnu vrijednost i u ptelji knan := knan * k; II varijanta sadrži uvećanje proizvoda pri svakom prolazu za k: p=p*k*i.

Listing programa:

// 12510321
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
      int i, n, k;
      double s, p, s1, s2;    // vrijednost faktorijela brzo se uvecava i prelazi opseg predvidjen za cijele brojeve
      
      cout << ("k = ");
      cin >> k;
      cout << ("n = ");
      cin >> n;
      
      s1 = 0;		// pocetna vrijednost sume neparnih - pozitivni
      s2 = 0; 	// pocetna vrijednost sume parnih - negativni
      p = 1;		// pocetna vrijednost proizvod
      
      for(i=1; i<=n; i++){   // ponavljanje za i=1 do i=n - pocetak petlje
          p = p * k * i;     // proizvod - p *= k*i;
          if (i % 2 == 0)    // djeljivi sa 2 - parnin
             s2 = s2 + p;    // suma parnih - negativni
          else
             s1 = s1 + p;    // suma neparnih - pozitivni
      }                      // for - kraj petlje
      	  
      s = s1 - s2;           // razlika suma
      cout << "s = " << s << endl;
      return 0;
}

II Varijanta
// 12510321
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
      int i, k, n, znak;
      double s, p, knan;    // vrijednost faktorijela brzo se uvecava i prelazi opseg predvidjen za cijele brojeve
      
      cout << ("k = ");
      cin >> k;
      cout << ("n = ");
      cin >> n;
      
      p = 1;		// pocetna vrijednost proizvod
      knan = 1;
      s = 0;
      znak = 1;
      
      for(i=1; i<=n; i++){   // ponavljanje za i=1 do i=n - pocetak petlje
          p = p * i;         // faktorijel za i
          knan = knan * k;   // racuna k na n za svaki prolaz kroz petlju
          s = s + znak * knan * p;  // nova vrijednost sume
          znak = -znak;      // promjena vrijednosti predznaka
      }                      // for - kraj petlje

      cout << "s = "  <<  s << endl;
      return 0;
}

Ispis na ekranu:

Index