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

va rog sa ma ajutati macar la 5 probleme!dau coroana si 69 puncte.in c++

secventaincadrata:Numim secvență încadrată a unui șir de numere naturale un subșir al acestuia, format din termeni aflați pe poziții consecutive în șirul dat, subșir care începe și se termină cu aceeași valoare. Lungimea secvenței este egală cu numărul de termeni ai acesteia.Să se determine secvențele încadrate dintr-un șir, care au lungimea maximă.

numere26:Se consideră un șir format din n numere naturale. Asupra numerelor din șir se face următoarea prelucrare: fiecare valoare este înlocuită cu cel mai mare divizor prim al său. În noul șir se formează secvențe de numere care încep și se termină cu aceeași valoare, numite secvențe neuniforme. Cunoscând numerele naturale n și c, și un șir de n numere naturale, se cere să se rezolve următoarele cerințe:

1. dacă c = 1, atunci se cere să se afișeze lungimea maximă a unei secvențe neuniforme.

2. dacă c = 2, atunci se cere să se afișeze numărul total de secvențe neuniforme din șir.

escape:Pentru că toți elevii clasei a VI-a s-au hotărât să meargă la EscapeRoom, diriginta a repartizat fiecărui elev un număr. Fiind mulți elevi, ei vor intra în două serii astfel: dacă numărul primit este prim, atunci elevul intră în seria 1, altfel elevul intră în seria 2. Numărul camerei în care intră elevul este cifra de control obținută din numărul primit de fiecare elev în parte (cifra de control a unui număr se obține efectuând suma cifrelor sale, apoi suma cifrelor acestei sume și așa mai departe, până când se obține un număr formată dintr-o singură cifră). În funcție de timpul de evadare, elevul are un punctaj reprezentat de un număr cu exact două cifre. La numărul primit, elevul lipește punctajul obținut și formează un cod pe care la sfârșitul activității îl transmite doamnei diriginte. Exemplu: elevul primește numărul 191; numărul este prim, deci elevul va intra în seria 1, iar numărul camerei este 2 (1 + 9 + 1 = 11, 1 + 1 = 2 ); punctajul obținut de elev este 60, deci codul elevului este 19160.Fiind dat numărul natural n, reprezentând numărul de elevi și cele n coduri primite de doamna dirigintă, să se determine:(1) Punctajul maxim obținut de o cameră în prima serie și punctajul maxim obținut de o cameră în a doua serie (punctajul camerei este egal cu suma punctajelor elevilor care au fost în camera respectivă în aceeași serie).(2) Indicii camerelor vizitate, în ordinea descrescătoare a numărului de elevi care le-au vizitat, din ambele serii, la un loc.

Ciurul Lui Eratosthenes:Să se afișeze numerele prime de la 1 la n.

prim007:Se dă un șir format din n numere naturale. Determinați numărul de perechi de elemente din șir care au suma număr prim.

mincifre:Se dă numărul natural n și se cere să se afișeze cel mai mic număr natural format din cifrele sale.
pana maine, va rog

Răspunsuri la întrebare

Răspuns de boiustef
2

****************************** prim007 **********************

#include <iostream>

using namespace std;

int a[20000], b[10001];

int main()

{

  long long n,i, j, nrp=0, m=20000, num;

   for (i = 2; i <= m; i++)

       a[i] = 1;

   for (i = 2; i*i <= m; i++)

       if (a[i]!=0)

           for (j = 2; j <= m / i; j++)

               a[i*j] = 0;

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> num; ++b[num];

   }

   if (b[0]*b[2]) nrp=nrp+b[0]*b[2];

   if (b[1]) { m=b[1]-1; if (m%2) nrp=nrp+(m+1)/2*m;

                           else nrp=nrp+m/2*(m+1);}

   for (i=0; i<9999; i+=2)

      for (j=1; j<=9999; j+=2)

          if (a[i+j]) nrp=nrp+b[i]*b[j];

   cout << nrp;

   return 0;

}

******************************* mincifre ****************************

#include <iostream>

#include <cstring>

#include <fstream>

using namespace std;

ifstream f("mincifre.in");

ofstream g("mincifre.out");

char ch;

short fr[10], cif, i,j;

int main()

{

   while (f>>ch)

   {

       cif=ch-'0';

       ++fr[cif];

   }

   if (fr[0]>0)

   {

       i=1;

       while (fr[i]==0) ++i;

       g << i;

       --fr[i];

   }

   for (i=0; i<10; ++i)

   {

       for (j=1; j<=fr[i]; ++j)

       {

           g << i;

       }

   }

}


boiustef: ********** secventaincadrata ***************
#include < iostream >
#include < fstream >
using namespace std;
ifstream f("secventaincadrata.in");
ofstream g("secventaincadrata.out");
int cif, poz[10], lung[10], c, lungmax;
int main()
{
while (f >> cif)
{
++c;
if (poz[cif]==0) { poz[cif]=c; lung[cif]=1; }
else lung[cif]=c-poz[cif]+1;
}

for (cif=0; cif < 10; ++cif)
if (lung[cif] > lungmax) lungmax=lung[cif];
g << lungmax << "\n";
for (cif=0; cif < 10; ++cif)
if (lung[cif]==lungmax) g << cif << " ";
}
Alte întrebări interesante