C++
Se dau două numere naturale a,b cu maxim 9 cifre.
a) Să se determine cifrele distincte comune numerelor a şi b.
b) Să se afişeze numărul cel mai mare format din toate cifrele lui a şi b
Exemplu : pentru a=2115 b=29025 se va afişa
a) 2 5
b) 955222110
Răspunsuri la întrebare
Răspuns de
1
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
int GetSize(int Nr);
int GetNrByPlace(int Nr,int Loc);
int main(){
long double a,b, WholeNr,MaxVal=0,NrPos=1;
string FinNr;
cin>>a>>b;
cout<<"Nr. comune sunt:";
for(int x=1;x<=GetSize(a);x++){
for(int y=1;y<=GetSize(b);y++){
if(GetNrByPlace(a,x)==GetNrByPlace(b,y)) cout<<GetNrByPlace(b,y)<<" ";
}
}
cout<<endl;
//===========Part 2============
WholeNr=a*pow(10,((double)GetSize(b)))+b;
while(WholeNr!=0 && WholeNr>0){
for(int x=1;x<=GetSize(WholeNr);x++){
if(GetNrByPlace(WholeNr,x)>MaxVal){
MaxVal=GetNrByPlace(WholeNr,x); NrPos=x;
}
}
if(MaxVal!=0) FinNr=FinNr+to_string((long double)MaxVal);
WholeNr-=MaxVal*pow(10,(double)NrPos-1);
MaxVal=NrPos=0;
}
cout<<"Max. Value is: "<<FinNr<<endl;
system("pause");
return 0;
}
int GetSize(int Nr){
int Size=0;
while(Nr!=0){
Size++; Nr/=10;
}
return Size;
}
int GetNrByPlace(int Nr,int Loc){
int Count=0;
while(Nr!=0){
Count++;
if(Count==Loc) {
return Nr%10;
continue;
}
Nr/=10;
}
}
#include<math.h>
#include<string>
using namespace std;
int GetSize(int Nr);
int GetNrByPlace(int Nr,int Loc);
int main(){
long double a,b, WholeNr,MaxVal=0,NrPos=1;
string FinNr;
cin>>a>>b;
cout<<"Nr. comune sunt:";
for(int x=1;x<=GetSize(a);x++){
for(int y=1;y<=GetSize(b);y++){
if(GetNrByPlace(a,x)==GetNrByPlace(b,y)) cout<<GetNrByPlace(b,y)<<" ";
}
}
cout<<endl;
//===========Part 2============
WholeNr=a*pow(10,((double)GetSize(b)))+b;
while(WholeNr!=0 && WholeNr>0){
for(int x=1;x<=GetSize(WholeNr);x++){
if(GetNrByPlace(WholeNr,x)>MaxVal){
MaxVal=GetNrByPlace(WholeNr,x); NrPos=x;
}
}
if(MaxVal!=0) FinNr=FinNr+to_string((long double)MaxVal);
WholeNr-=MaxVal*pow(10,(double)NrPos-1);
MaxVal=NrPos=0;
}
cout<<"Max. Value is: "<<FinNr<<endl;
system("pause");
return 0;
}
int GetSize(int Nr){
int Size=0;
while(Nr!=0){
Size++; Nr/=10;
}
return Size;
}
int GetNrByPlace(int Nr,int Loc){
int Count=0;
while(Nr!=0){
Count++;
if(Count==Loc) {
return Nr%10;
continue;
}
Nr/=10;
}
}
mickey213:
Ai putea face o rezolvare mai simpla, pentru clasa a 9 a ??
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă