Sunteți pe pagina 1din 5

#1005

Se dă o listă cu numere naturale. Să se determine numerele naturale nenule cu cel mult patru
cifre care nu apar în lista dată.

#include <fstream>
using namespace std;
ofstream fout("numere8.out");
ifstream fin("numere8.in");
int v[10005], x;
int main()
{
    while(fin >> x) v[x] = 1;
    for(int i=10000; i--;)
        if(!v[i]) fout << i << ' ';
    return 0;
}

Exemplu:
Intrare: 107 4 5 8 1 6 9
Ieșire: 9999 9998 ... 108 106 105 ... 10 7 3 2

#244

Se dau n cifre zecimale. Să se afişeze aceste cifre în ordine crescătoare.

#include <bits/stdc++.h>
using namespace std;
ifstream fin("cifreord.in");
ofstream fout("cifreord.out");
int n,a[10],x;
int main ()
{
    fin >> n;
    for(int i=1;i<=n;i++)
    {
        fin >> x;
        a[x]++;
    }
    n=0;
    for(int i=0;i<10;i++)
        if(a[i]!=0)
            for(int j=1;j<=a[i];j++)
            {
                if(n==20)
                    n=0, fout << endl;
                fout << i << " ", n++;
            }
    return 0;
}

Exemplu:
Intrare:
25
11273515
36780105
6382
97957
Ieșirea:
0 0 1 1 1 1 2 2 3 3 3 5 5 5 5 6 6 7 7 7 
78899

#529

Se dau n numere naturale. Afișați cifrele care apar în scrierea zecimală a acestor numere, în
ordinea crescătoare a numărului de apariții. Dacă două cifre au același număr de apariții, se
va afișa mai întâi cifra mai mică.

#include <iostream>
#define INF 2147000000
using namespace std;
int w[10],n,x,i,j,cif,p,minn=INF;
bool ok;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
     {
         cin>>x;
         while(x)
         {
             cif=x%10;
             x=x/10;
             w[cif]=w[cif]+1;
         }
     }
     do
    {
        ok=true;
        minn=INF;
        for(i=0;i<=9;i++)
         if((w[i]<minn)&&(w[i])) minn=w[i], p=i, ok=false;
         w[p]=INF;
        if(!ok) cout<<p<<" ";
    } while(!ok);
    return 0;
}

Exemplu:
Intrare:
5
124 229 1322 4 534
Ieșire:
591342
#187

Să se scrie un program care citeşte cel mult 1000000 de numere naturale din intervalul
închis [0,9] şi determină cel mai mare număr prim citit şi numărul său de apariţii.

#include <iostream>
using namespace std;
int main(){ int n , x; cin >> n;
int max = -1, exp = 0;
for(int i = 1 ; i <= n ; ++i)
{
cin >> x;
int d = 2, p;
while(x > 1)
{
p = 0;
while(x % d == 0)
p ++, x /= d;
if(p)
{
if(d > max)
max = d, exp = p;
else
if(d == max)
exp += p;
}
d ++;
if(x > 1 && d * d > x)
d = x;
}
}
cout << max << " " << exp;
return 0;
}
Exemplu:
Intrare:
589195
Ieșire:
52

#247

Se dau mai multe numere naturale, fiecare cu cel mult 9cifre. Să se afişeze, în


ordine descrescătoare, toate cifrele care apar în numerele date.
#include <iomanip>
#include <fstream>
#include <iostream>
#include <cassert>
using namespace std;
ifstream fin("cifreord1.in");
ofstream fout("cifreord1.out");
int a[10];
int main()
{
int x;
while(fin >> x)
do
{
a[x%10]++;
x /= 10;
}
while(x);
x = 0;
for(int i=9 ; i>=0 ; --i)
for(int j = 1 ; j<= a[i] ; ++j)
{
fout << i << " ";
x ++;
if(x%20 == 0)
fout << endl; }
return 0;
}

Exemplu:
Intrare:
301941 81912 83392
776996 431446
Ieșire:
99999887766644443333
22111110

S-ar putea să vă placă și