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
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;
}
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
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Geografie,
9 ani în urmă
Limba română,
9 ani în urmă