Mi da 5 casi sbagliati e non capisco quali siano ho solo capito che non grandi numeri (piu di 10 cifre) da numeri che non centrano niente,mi sapreste dire il parchè? Grazie in anticipo!
Questo è il codice:
#include <bits/stdc++.h>
using namespace std;
vector<int>v;
long long int n;
long long int N;
int contrario(long long int N){
long long int NN=N;
while(NN!=0){
v.push_back(NN%10);
NN=NN/10;
}
if(v.size()==0){
return N;
}
if(find(v.begin(),v.end(),3)!=v.end() || find(v.begin(),v.end(),4)!=v.end() || find(v.begin(),v.end(),4)!=v.end() || v[0]==0){
return N;
}
else{
long long int mul=1;
for(int i=v.size()-1;i>=0;i--){
if(v[i]==6){
n+=9*mul;
}
else{
if(v[i]==9){
n+=6*mul;
}
else{
n+=v[i]*mul;
}
}
mul*=10;
}
if(n>N){
return N;
}
else{
return n;
}
}
}
int main(){
ofstream out("output.txt");
ifstream in("input.txt");
in>>N;
n=0;
out<<contrario(N);
}