Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"David Scherfgen"«
- Verwenden der Standardbibliothek ist verboten.
Administrator
Zitat von »"Florianx"«
Zitat von »"David Scherfgen"«
- Verwenden der Standardbibliothek ist verboten.
Also auch std::string und strcpy?
Administrator
Zitat
- Verwenden der Standardbibliothek ist verboten.
Administrator
Zitat von »"Asmodiel"«
Zu std::string in der Referenz:
Zählt der String nun nicht zur Standardbibliothek oder
darf die Referenzfunktion den einfach trotzdem benutzen?
C-/C++-Quelltext |
|
1 2 |
// Referenzimplementierung // (Sie darf die Standardbibliothek benutzen, haha!) |
Administrator
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
void translate_number_to_roman(int number, std::string &text) { text.clear(); char digit[] = { 'I', 'V', 'X', 'L', 'C', 'D', 'M' }; int value[] = { 1, 5, 10, 50, 100, 500, 1000 }; // Für alle Ziffern, absteigend nach ihrer Wertigkeit for (int i = 6; i >= 0; --i) { // Abzählen, wie oft der Wert der Ziffer in der Zahl enthalten ist int count = 0; while (number >= value[i]) { number -= value[i]; count++; } // Subtraktionsregel, nur auf I,X,C anwendbar if (!(i%2) && (i<5) && (count == 4)) if (!text.empty() && (*text.rbegin() == digit[i+1])) { *text.rbegin() = digit[i]; text.push_back(digit[i+2]); } else { text.push_back(digit[i]); text.push_back(digit[i+1]); } // ohne Subtraktionsregel else for (;count;--count) text.push_back(digit[i]); } } |
Werbeanzeige