Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

На C++ мне нужно выводить 100+ числа фиббоначи int уходит в минус, есть способ выводить такие огромные числа цифрами?

Максим Назаров Знаток (447), открыт 3 дня назад
4 ответа
Tokyo Ghoul Гуру (3064) 3 дня назад
Для вывода больших чисел в C++ можно использовать различные подходы. Вот несколько советов:

1. **Используйте библиотеку для работы с большими числами.** В C++ есть несколько библиотек, которые позволяют работать с большими целыми числами. Например, библиотека GMP (GNU Multiple Precision Arithmetic Library) предоставляет функции для работы с целыми числами произвольной длины.

2. **Используйте тип данных long long int.** Тип данных long long int может представлять целые числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Это достаточно большой диапазон, чтобы вместить большинство чисел Фибоначчи. Однако, если вам нужно работать с ещё большими числами, то вам всё равно потребуется библиотека для работы с большими числами.

3. **Используйте строковый тип данных.** Вы можете хранить числа в виде строк и выполнять над ними операции как над строками. Это позволит вам работать с числами любой длины. Однако это может быть менее эффективным с точки зрения производительности.

4. **Используйте класс BigInteger.** В некоторых библиотеках есть классы для работы с большими целыми числами, такие как класс BigInteger в библиотеке GMP. Эти классы предоставляют функции для выполнения различных операций над большими числами.

Пример использования библиотеки GMP:
```cpp
#include <iostream>
#include "gmp.h"

using namespace std;

int main() {
mpz_t num;
mpz_init_set_str(num, "1", 10); // Инициализируем число 1
cout << "The first Fibonacci number is: " << mpz_get_str(NULL, 10, num) << endl;
for (int i = 1; i <= 10; i++) {
mpz_add_ui(num, num, 1); // Добавляем к числу 1
cout << "Fibonacci(" << i << ") = " << mpz_get_str(NULL, 10, num) << endl;
}
return 0;
}
```
Этот код использует библиотеку GMP для вычисления первых 10 чисел Фибоначчи и выводит их на экран. Вы можете изменить код, чтобы вычислять больше чисел Фибоначчи или использовать другие библиотеки для работы с большими числами.
ромин ёров Знаток (273) 3 дня назад
unsigned long long int тебе в помощь
Алекс Куха Высший разум (466843) 2 дня назад
использовать беззнаковый целый тип. Он никогда в минус не уйдёт
больше не чат гпт ???? Мыслитель (8366) 2 дня назад
 #include <iostream> 
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

string add(string a, string b) {
string result = "";
int i = a.length() - 1, j = b.length() - 1, carry = 0;
while (i >= 0 || j >= 0 || carry) {
int sum = carry;
if (i >= 0) sum += a[i--] - '0';
if (j >= 0) sum += b[j--] - '0';
carry = sum / 10;
result += to_string(sum % 10);
}
reverse(result.begin(), result.end());
return result;
}

int main() {
vector<string> fib = {"0", "1"};
for (int i = 2; i <= 100; ++i) {
fib.push_back(add(fib[i - 1], fib[i - 2]));
cout << fib[i] << endl;
}
return 0;
}
Похожие вопросы