C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で多数を処理しますか?


C ++では、Boostライブラリを使用して多数を使用できます。このC++Boostライブラリは、広く使用されているライブラリです。これは、さまざまなセクションで使用されます。それはアプリケーションの大きなドメインを持っています。たとえば、ブーストを使用すると、2 64 のような多数を使用できます。 C++で。

ここでは、Boostライブラリの例をいくつか示します。大きな整数のデータ型を使用できます。 int128_t、int256_t、int1024_tなどのさまざまなデータ型を使用できます。これを使用すると、最大1024の精度を簡単に取得できます。

最初は、ブーストライブラリを使用して2つの巨大な数値を乗算しています。

#include<iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
int128_t large_product(long long n1, long long n2) {
   int128_t ans = (int128_t) n1 * n2;
   return ans;
}
int main() {
   long long num1 = 98745636214564698;
   long long num2 = 7459874565236544789;
   cout << "Product of "<< num1 << " * "<< num2 << " = " <<
   large_product(num1,num2);
}

出力

Product of 98745636214564698 * 7459874565236544789 =
736630060025131838840151335215258722

別の種類のデータ型は、任意精度データ型です。したがって、cpp_intデータ型を使用して任意の精度を使用できます。実行時に自動的に精度を割り当てます。

#include<iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
cpp_int large_fact(int num) {
   cpp_int fact = 1;
   for (int i=num; i>1; --i)
      fact *= i;
   return fact;
}
int main() {
   cout << "Factorial of 50: " << large_fact(50) << endl;
}

出力

Factorial of 50:
30414093201713378043612608166064768844377641568960512000000000000

  1. C++でのデュードニー番号

    与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。

  2. 再帰を使用して自然数の合計を見つけるC++プログラム

    自然数は1から始まる正の整数です。 自然数のシーケンスは-です 1, 2, 3, 4, 5, 6, 7, 8, 9, 10…… 再帰を使用して最初のn個の自然数の合計を見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int sum(int n) {    if(n == 0)    return n;    else    return n + sum(n-1); } int main() { &