mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-04-05 03:29:46 +08:00
Merge pull request #881 from kvedala/fix-large_number.h
bug fix: large number.h
This commit is contained in:
@@ -53,7 +53,7 @@ class large_number {
|
||||
/**< initializer from a string */
|
||||
explicit large_number(char const *number_str) {
|
||||
for (size_t i = strlen(number_str); i > 0; i--) {
|
||||
unsigned char a = number_str[i - 1] - '0';
|
||||
char a = number_str[i - 1] - '0';
|
||||
if (a >= 0 && a <= 9)
|
||||
_digits.push_back(a);
|
||||
}
|
||||
@@ -127,7 +127,7 @@ class large_number {
|
||||
/**
|
||||
* Get number of digits in the number
|
||||
**/
|
||||
const size_t num_digits() const { return _digits.size(); }
|
||||
size_t num_digits() const { return _digits.size(); }
|
||||
|
||||
/**
|
||||
* operator over load to access the
|
||||
@@ -245,7 +245,7 @@ class large_number {
|
||||
/**
|
||||
* returns i^th digit as an ASCII character
|
||||
**/
|
||||
const char digit_char(size_t i) const {
|
||||
char digit_char(size_t i) const {
|
||||
return _digits[num_digits() - i - 1] + '0';
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ class large_number {
|
||||
size_t i;
|
||||
uint64_t carry = 0, temp;
|
||||
for (i = 0; i < this->num_digits(); i++) {
|
||||
temp = (*this)[i] * n;
|
||||
temp = static_cast<uint64_t>((*this)[i]) * n;
|
||||
temp += carry;
|
||||
if (temp < 10) {
|
||||
carry = 0;
|
||||
|
||||
Reference in New Issue
Block a user