Informatică, întrebare adresată de Vibe23, 8 ani în urmă

Din fisierul suma.in se citesc numerele 12 10 15 7 17 10 19 14 . sa se calculeze in variabila s suma dintre elementele care se afla intre primul si ultimul element prim. Vreau rezolvarea fara vectori . Trebuie sa o fac cu secventa (adica mai intai citesc pe x si y din fisier , prelucrez x apoi fac interschimbarea x=y si tot asa pana cand nu mai sunt elemente in fisier . in cazul in care nu ati inteles ce am vrut sa spun este problema #298 SumSec de pe pbinfo . Repet : fara vectori , cu secventa !

Răspunsuri la întrebare

Răspuns de pmarian98
0

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

int main()

{

   ifstream in("sumsec.in");

   ofstream out("sumsec.out");

   int n = 0, v[1000], prim1 = 0, prim2 = 0;

   long long s = 0;

   in >> n;

   for (int i=0; i<n; i++)

   {

       in >> v[i];

       int OK = 1;

       for (int j=2; j<=sqrt(v[i]) && OK; j++)

           if (v[i]%j==0)

               OK = 0;

       if (OK && v[i] != 0 && v[i] != 1)

       {

           if (!prim1)

           {

               prim1 = i;

               prim2 = i;

           }

           else

               prim2 = i;

       }

   }

   for (int i=prim1; i<=prim2; i++)

       s += v[i];

   out << s;

   return 0;

}


Alte întrebări interesante