C ++ - wie man die Länge einer ganzen Zahl findet

9

Ich versuche einen Weg zu finden, die Länge einer ganzen Zahl (Anzahl von Stellen) zu finden und sie dann in ein Integer-Array zu platzieren. Die Zuweisung erfordert auch, dies ohne die Verwendung von Klassen aus der STL zu tun, obwohl die Programmspezifikation sagt, dass wir "gemeinsame C-Bibliotheken" verwenden können (werde meinen Professor fragen, ob ich cmath verwenden kann, weil ich log10 (num) annahm) + 1 ist der einfachste Weg, aber ich frage mich, ob es einen anderen Weg gab).

Ah, und das muss nicht mit negativen Zahlen umgehen. Nur nicht negative Zahlen.

Ich versuche, eine Variante "MyInt" -Klasse zu erstellen, die mit einem dynamischen Array einen größeren Bereich von Werten verarbeiten kann. Irgendwelche Tipps würden geschätzt! Danke!

    
user1888527 26.03.2014, 00:13
quelle

10 Antworten

19

Die Anzahl der Stellen einer Ganzzahl n in einer beliebigen Basis wird einfach durch Division erhalten, bis Sie fertig sind:

%Vor%     
Kerrek SB 26.03.2014, 00:17
quelle
9

Wenn Sie C-Bibliotheken verwenden können, wäre eine Methode sprintf , z. B.

%Vor%     
Paul R 26.03.2014 00:16
quelle
9

Nicht unbedingt der effizienteste, aber einer der kürzesten und am besten lesbaren mit C ++:

%Vor%     
Riot 09.02.2016 10:42
quelle
6

"Ich meine die Anzahl der Ziffern in einer Ganzzahl, d. h." 123 "hat eine Länge von 3"

%Vor%

gibt 3

aus     
LihO 26.03.2014 00:18
quelle
4
%Vor%

Hier ist ein kleines effizientes

    
Naheel 08.12.2015 11:50
quelle
3

Geschlossene Formel für die Größe von int :

%Vor%

BEARBEITEN:

Für die Anzahl der Dezimalstellen eines Wertes:

%Vor%

Dies funktioniert für Zahlen > 0 . Null muss separat überprüft werden.

    
lvella 18.05.2015 15:20
quelle
2

Als Computer-Nerd und nicht als Mathe-Nerd würde ich tun:

%Vor%     
John3136 26.03.2014 00:17
quelle
2

Wie wäre es (funktioniert auch für 0 und negative):

%Vor%     
Sir Alucard 10.12.2017 08:53
quelle
1

Wäre das ein effizienter Ansatz? In einen String konvertieren und die Längeneigenschaft finden?

%Vor%     
Aris94 10.04.2015 20:18
quelle
1

Es gibt einen viel besseren Weg, es zu tun

%Vor%

funktioniert für int und dezimal

    
droid fiji 04.08.2017 16:02
quelle

Tags und Links