Informatică, întrebare adresată de amarghioaleidra, 9 ani în urmă

Sa se afiseze toate numerele naturale mai mici decat n, care au proprietatea ca patratul si cubul fiecaruia au cel putin o cifra comuna; pt fiecare numar gasit sa se afiseze cate cifre sunt comune si care sunt acelea!

Va rog ajutati-ma, chiar nu-mi pot da seama cum se rezolva!


AntiEaglesDavids: tu ce ai incercat pana acum?

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
8
#include <iostream>
using namespace std;

int cifre[10];

int adauga_cfr(int p, int c)
{
    int ok = 0;

    while(p) {
        cifre[p % 10] = 1;
        p /= 10;
    }

    while(c) {
        if(cifre[c % 10] == 1) cifre[c % 10] = 2, ok = 1;
        c /= 10;
    }

    if(ok) return 0;
    return 1;
}

int main()
{
    int n;

    cin >> n;
    for(int i=1, nr=0; i<n; i++, nr=0) {
        if(!adauga_cfr(i*i, i*i*i)) {
            cout << i << " - Cifrele comune sunt: ";
            for(int i=0; i<10; i++)
                if(cifre[i] == 2) nr++, cout << i << ' ';
            cout << " - Nr. cifre comune: " << nr << '\n';
        }
        for(int i=1; i<10; i++) cifre[i] = 0;
    }

    return 0;
}


Alte întrebări interesante