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

#2871 Fulger

Pentru a putea ajunge la concursul de mașini, Fulger Mcqueen, trebuie să termine de asfaltat drumul din Valea Radiator.

La intrarea în Valea Radiator, Bucșă are pregătite N bidoane, fiecare având înscris pe el câte un număr. Dintre cele N bidoane doar câteva conțin asfalt.

Bucșă îi spune lui Fulger:

– Fulger, prietene, vreau să te ajut să găsești bidoanele corecte, așa că îți spun că fiecare număr de pe bidon, are asociat un cod secret, codul secret al fiecărui număr se obține prin diferența dintre numărul alcătuit din atâtea cifre de 9 câte are numărul scris pe bidon și numărul de pe bidon. Bidoanele cu asfalt au cifra unităților 0 și cifra zecilor 1.

Scrieți un program care să determine:

a) Codul secret asociat fiecărui număr de pe bidon;
b) Numărul de bidoane care conțin asfalt.

Date de intrare
Fișierul de intrare fulger.in conține pe prima linie un număr natural N ce reprezintă numărul de bidoane pregătite de Bucșă, iar următoarele N linii, câte un număr natural, diferit de 0, ce reprezintă numărul asociat fiecărui bidon.

Date de ieșire
Fișierul de ieșire fulger.out va conține pe prima linie, despărțite prin spațiu codul secret al fiecărui număr de pe bidon, iar pe cea de-a doua linie, un număr natural ce reprezintă numărul de bidoane cu asfalt, pe care le-a descoperit Fulger.

Restricții și precizări
1 ≤ n ≤ 100
numerele de pe a doua linie a fișierului de intrare vor fi situate în intervalul [1, 1.000.000.000]



Exemplu
fulger.in

5
2138
531649
154289
798
96489
fulger.out

7861 468350 845710 201 3510
2
Explicație
Bucșă a pregătit pentru Fulger 5 bidoane.

Cerința a)

Primul bidon are codul secret 7861, deoarece 9999 – 2138 = 7861
Al doilea are codul secret 468350, deoarece 999999 – 531649 = 468350
Al treilea are codul secret 845710, deoarece 999999 – 154289 = 845710
Al patrulea are codul secret 201, deoarece 999 – 798 = 201
Al cincilea are codul secret 3510, deoarece 99999 – 96489 = 3510

Cerința b)

Numărul de bidoane cu asfalt este 2.


------------------------------------------------------------------------------------------------------------------------------

#2870 Magie

În regatul de gheață Olaf este renumit pentru spectacolele sale de magie. La o reprezentaţie de magie, Olaf invită pe scenă N persoane. Fiecare persoană îi şopteşte lui Olaf la ureche anul nașterii şi el calculează vârsta fiecărei persoane ca fiind diferența dintre 2017 și anul nașterii acesteia.

Printr-o magie, Olaf face să apară pe scenă, câte un om de zăpadă pentru fiecare copil de 12 ani care se află printre cele N persoane.

Olaf asociază apoi pentru fiecare persoană de pe scenă un număr magic obținut prin însumarea tuturor cifrelor ce apar în anul nașterii persoanei respective.

Printr-o nouă magie, Olaf scoate din pălăria sa un buchet cu flori de gheață, buchet ce conține atâtea flori cât arată cel mai mare număr magic asociat de Olaf unei persoane. El dăruieşte acest buchet Elsei – prințesa regatului.

Scrieți un program care să determine:

a) Numărul oamenilor de zăpadă care au apărut pe scenă prin magia lui Olaf;
b) Numărul florilor de gheață din buchetul pe care Olaf l-a dăruit Elsei.

Date de intrare
Fișierul de intrare magie.in conține pe prima linie numărul N, ce reprezintă numărul persoanelor invitate de Olaf pe scenă, iar de pe următoarele N linii, câte un număr natural care are exact 4 cifre şi care reprezintă anul nașterii unei persoane.

Date de ieșire
Fișierul de ieșire magie.out va conține pe prima linie numărul oamenilor de zăpadă apăruți pe scenă în urma magiei lui Olaf, iar pe cea de-a doua linie, un număr natural ce reprezintă numărul florilor de gheață din buchetul lui Olaf.

Restricții și precizări
1 ≤ N ≤ 100



Exemplu
magie.in

5
1994
2005
1965
2005
2005
magie.out

3
23
Explicație
Pe scenă au fost invitate 5 persoane.Trei dintre persoane au vârsta de 12 ani ceea ce înseamnă că Olaf a făcut ca prin magie să apară pe scenă 3 oameni de zăpadă.

Pentru persoana născută în 1994 numărul magic este 1+9+9+4=23.
Pentru persoana născută în 2005 numărul magic este 2+0+0+5=7
Pentru persoana născută în 1965 numărul magic este 1+9+6+5=21

Cel mai mare număr magic este 23. Buchetul cu flori de gheață va conține 23 de flori.

Răspunsuri la întrebare

Răspuns de Christ
1

#include <fstream>

#include <cmath>

using namespace std;

ifstream fin ("fulger.in");

ofstream fout("fulger.out");

int main(){

   int n, k, nr = 0, nrc, x;

   fin >> n;

   while (n){

       fin >> k;

       nrc = 0;

       x = k;

       while (x){

           nrc++;

           x /= 10;

       }

       x = (float)pow (10, nrc)-1;

       x = x-k;

       fout << x << " ";

       if (x%10 == 0){

           x /= 10;

           if (x%10 == 1)

               nr++;

       }

       n--;

   }

   fout << '\n' << nr;

   fin.close();

   fout.close();

   return 0;

}

Alte întrebări interesante