Hogyan lehet egy adott számon belül leelenőrizni, hogy egy szám előfordul-e 2x? (c++)
Adott a 1234567819 szám.
Én így próbáltam:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be ("nr.in.txt");
ofstream ki ("nr.out.txt");
int tomb[1];
for(int i=0; i<1; i++){
be>>tomb[i];
}
int a;
int tomb2[1];
for(int i=0; i<1; i++){
a=tomb[i];
for(; a>0; a/=10){
tomb2[i]=a%10;
if(tomb2[i]=tomb2[i+1])
}
}
return 0;
}
Végül így oldottam meg, de köszönök szépen mindent!
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be ("nr.in.txt");
ofstream ki ("nr.out.txt");
long long tomb;
be>>tomb;
long long a=0;
long long n=tomb;
int tomb3[10];
for(int i=0;i<10;i++) tomb3[i]=0;
for(;n>0;n/=10) tomb3[n%10]++;
for(int i=0;i<10;i++)
{
if(tomb3[i]>=2)
{
ki<<"YES";
return 0;
}
}
ki<<"NO";
return 0;
}
Ránézésre jó, de pár megjegyzés:
1) ne hívj tomb-nek nem-tömb változókat, csak magadat zavarod össze
2) az n változóra semmi szükség, a ciklus ugyanígy mehet a tomb változón is
3) az a változóra még annyira sincs szükség
4) ne használj long long-ot, ha nem kifejezetten szükséges. Ide bőven elég a sima int is. (vagy lehet unsigned int, mert természetes számokról van szó)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!