Kombinieren Sie zwei zahlen in einem. Beispiel: 123 und 456 werden 123456
In C++, wie kann ich die kombinieren (Hinweis: nicht hinzufügen) von zwei ganzen zahlen in einen großen integer?
Beispiel:
int1 = 123;
int2 = 456;
Gibt es eine Funktion die zwei zahlen, und drehen Sie intCombined in 123456?
EDIT:
Mein bad nicht zu erklären, klar. Wenn int2 0 ist, dann sollte die Antwort 123, nicht 1230. In der Wirklichkeit obwohl, int1 (die Zahl auf der linken Seite) hätte nur einen Wert, wenn int2, geht es über die 32-bit-Grenze. Also, wenn int2 0 ist, dann int1 0 (oder Müll, ich bin mir nicht sicher).
InformationsquelleAutor der Frage jiake | 2010-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Kraft von zehn, dass Sie benötigen, multiplizieren Sie die erste Zahl, die kleinste, die größer als die zweite Zahl ein:
InformationsquelleAutor der Antwort sth
Könnte man umwandeln in strings zu kombinieren und dann konvertieren Sie Sie zurück in einen int?
InformationsquelleAutor der Antwort Jan Johansen
Für jede Ziffer
int2
können Sie mehrereint1
durch 10, und fügen Sie dannint2
:Könnten Sie loszuwerden, die Schleife mit
log10
undceil
.InformationsquelleAutor der Antwort R Samuel Klatchko
Vorausgesetzt, beide int-Werte nicht negativ sind, und int1 geht auf der linken Seite und int2 geht auf der rechten Seite, werden Sie brauchen, um herauszufinden, wie viele Ziffern lang int2 ist, multiplizieren int1 durch 10 ein paar mal, und fügen Sie Sie dann.
InformationsquelleAutor der Antwort csj
Wenn die zahlen, die Sie versuchen zu verbinden sind positive ganze zahlen, die Sie verwenden können pairing-Funktionen.
Pairing-Funktion erzeugt eine eindeutige Nummer, die aus zwei. Es ist auch eine reversible Funktion.
Dann die Umkehrung:
Hinweis. Das oben ist nicht in einer bestimmten Sprache. Nur etwas Mathe...
InformationsquelleAutor der Antwort Noel
Könnten Sie stringstream:
dann rufen Sie
atoi
auf den string zurückgegeben.InformationsquelleAutor der Antwort wheaties
Folgende ist im wesentlichen sth akzeptierten Lösung, aber mit dem b==0 fix, und die Schleife wird ersetzt durch einen Ausdruck zur Berechnung der Skala direkt:
In einigen Fällen (wie ein Ziel, eine FPU und eine gute Mathe-Bibliothek) der Ausdruck könnte schneller sein als die Schleife, aber ich habe nicht getestet, die Hypothese.
InformationsquelleAutor der Antwort Clifford
Eine weitere option, die funktioniert für C:
InformationsquelleAutor der Antwort Juliano
InformationsquelleAutor der Antwort Mehtab Khan