Integerzahl nach vorkommen absuchen...
-
camper schrieb:
in string umwandeln und dann nach der 7 suchen
#include <sstream> // ... int i=//... if(static_cast<std::stringstream&>(std::stringstream()<<i).str().find('7')!=std::string::npos)//...
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
-
Hallo
okay, dann nimm wie bereits gesagt std::string als Zwischenspeicher. Dafür hast du ja jetzt mehrere Lösungen.
bis bald
akari
-
akari schrieb:
Hallo
okay, dann nimm wie bereits gesagt std::string als Zwischenspeicher. Dafür hast du ja jetzt mehrere Lösungen.
bis bald
akariund welche ist anfängerfreundlicher? *kindergartenspielchen*
Hmm...mir fällt aber auch grad keine lösung für ints ein ohne irgendein cast oder so....
-
5er1al(ausgeloggt) schrieb:
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
meins sollte auch nicht zu ernst genommen werden - ist ja klar, dass hier auch bessere lösungen angeboten werden
es geht im übrigen auch ganz ohne strings:
bool has7(int i) { while ( i ) { if ( i % 10 == 7 ) return true; i /= 10; } return false; }
-
5er1al schrieb:
Hmm...mir fällt aber auch grad keine lösung für ints ein ohne irgendein cast oder so....
Man könnte noch selber die einzelnen Stellen durch Division und Modulo durch 10 abfragen und auf 7 prüfen.
/Edit : zu spät
bis bald
akari
-
jo daran hatte ich überhaupt nicht gedacht....
-
camper schrieb:
5er1al(ausgeloggt) schrieb:
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
meins sollte auch nicht zu ernst genommen werden - ist ja klar, dass hier auch bessere lösungen angeboten werden
es geht im übrigen auch ganz ohne strings:
bool has7(int i) { while ( i ) { if ( i % 10 == 7 ) return true; i /= 10; } return false; }
funktioniert das auch bei zahlen 70-71??
bin ich mir grad nich ganz sicher...
-
ich meine 70-79
shice ausgeloggt sein
-
Hallo
Ja, es geht für alle Stellen, wegen dem while.
bis bald
akari
-
bool find(int zahl,unsigned int suchzahl){ //wenn die zahl negativ ist, positiv machen if(zahl<0)zahl*=-1; //test auf 0 if(zahl==0&&suchzahl==0){ return true; } //normaler test while(zahl!=0){ int stelle=zahl%10;//letzte stelle raussuchen if(stelle==suchzahl) return true; zahl/=10;//letzte stelle löschen } return false; }