Jump to content

O problema


Clayton
 Share

Recommended Posts

Am o problema, si cum eu sunt paralele cu informatica, Skizzoo mi-a spus sa postez pe aici, poate ma ajuta cineva:

 

"Scrieţi un program eficient din punct de vedere a spaţiului de memorie utilizat, care va citi din fişierulnumere.in un număr neprecizat de numere naturale, dintre care măcar două valori reprezintă factorialul unui număr. Programul va afişa în fişierul numere.out cele mai mari două valori care au proprietatea de a reprezenta factorialul unui număr, precum şi numărul de apariţii al acestor valori. Afişarea se va realiza în formatul dat în exemplu."

III.png

 

Daca stie/poate cineva sa faca chestia asta ar fi super, eu nici nu am auzit de asa ceva in afara de fisere.

Link to comment
Share on other sites

Sper sa-ti fie de folos, probabil ca mai sunt ceva variabile nefolosite.

#include <iostream>
#include <fstream>

using namespace std;
int nr1, nr2;


int check(int m){
ifstream f("numere.in");
int k, j=0;
while(f >> k){
if(k == m)
j++;
}
return j;
}

int fs(int g){
int x=1;
if(g == 1 || g == 2)
return 1;
else{
for(int h=1; h<=g; h++){

if(g==x){
return 1;
}
x = x*h;
}
}
return 0;
}

void verify(int a){
int it=0;
if(fs(a) == 1){
cout << "\n " << a << " reprezinta factorialul unui nr";
if(a > nr1)
nr1=a;
else if(a > nr2)
nr2=a;


}else
cout << "\n " << a << " nu reprezinta factorialul unui nr";
}


int main(){
ifstream f("numere.in");
ofstream g("numere.txt");
int nr;

while(f >> nr)
verify(nr);

cout << "\n nr1 = " << nr1 << " apare de " << check(nr1) << " ori";
cout << "\n nr2 = " << nr2 <<" apare de " << check(nr2) << " ori";
g << nr1 << " " << check(nr1) << "\n" << nr2 << " " << check(nr2);
f.close();
g.close();
return 0;
}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.