Identifizieren Sie die Ziffern in einer Zahl angegeben.
Ich bin neu in der Programmierung, und ich bin stecken in einem problem. Ich will, dass mein Programm zur Identifizierung der separaten Ziffern in einer Zahl angegeben, wie wenn ich input 4692
sollte festgestellt werden, die Ziffern und drucken 4 6 9 2
. Und ja, ohne Verwendung von arrays.
- gute interview-Frage. danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Perfekte Rekursion problem anzugehen, wenn Sie neu zu Programmieren...
4692/1000 = 4
4692%1000 = 692
692/100 = 6
692%100 = 92
92/10 = 9
92%10 = 2
Sollten Sie auf die Idee für die Schleife sollte man verwenden, damit es funktioniert für eine beliebige Anzahl. 🙂
Habe nicht geschrieben, C-code im Jahr, aber dies sollte funktionieren.
i
5 mal: "123451234123121". Auch wenn Sie druckennextVal
statti
, dann machst du es in der falschen Reihenfolge und drucken "54321".Schöne und einfache
Ich denke, die Idee ist nicht reapeating Ziffern gedruckt (sonst wäre es zu einfach)... gut, behalten Sie den überblick über die bereits gedruckte zahlen ohne eine array-Codierung in einem anderen integer.
einige pseudo-C, bis Sie einen Anhaltspunkt geben:
d**2
? Ich denke du meinstd*d
.**
ist Fortran ist potenzierungsoperator. C nicht über einen potenzierungsoperator. Sie kann ersetzen2**d
mit1 << d
.Einen anderen Ansatz haben zwei Schleifen.
1) Erste Schleife: die Umkehrung der Zahl.
2) eine Zweite Schleife: Drucken Sie die zahlen von rechts nach Links.
Dies wird vorausgesetzt, Sie wollen, dass die Ziffern von rechts nach Links gedruckt. Ich bemerkte, gibt es mehrere Lösungen hier, die nicht mit dieser Annahme. Wenn nicht, dann eben die zweite Schleife würde ausreichen.
Hier ist eine einfache Lösung, wenn Sie möchten, drucken Sie einfach die Ziffern der Zahl.
buff
wenn Sie nur gehen, um diese zu überschreiben mitsprintf()
später? Auch, warum haben Siechar *p
wenn Sie es nie nutzen?int
nur zahlen bis 4 Milliarden auf den meisten Plattformen, so dass Sie sollten sicher sein, mit 10 Ziffern (11 Zeichen mit dem nul-terminator). Wenn Sie sind besorgt über 64-bits, das ist immer noch nur etwa 20 bis 25 Zeichen.Ist es richtig