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