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

C++でN以下の数値の中から桁の最大積を求めます


1つの整数N>0があるとします。タスクは、N以下の数値の中から数字の最大積を見つけることです。Nが390の場合、結果は次のようになります。 216、数389が最大の積3 * 8 * 9=216を作成しているため。

この問題を解決するために、再帰的アプローチを使用します。したがって、N =0の場合は1を返し、数値N <10の場合はNを返し、それ以外の場合はmax(max_product(N / 10)*(N mod 10)、max_product((N / 10)-1)*9を返します。 )

#include<iostream>
using namespace std;
int max_product(int N) {
   if (N == 0)
      return 1;
   if (N < 10)
      return N;
   return max(max_product(N / 10) * (N % 10), max_product(N / 10 - 1) * 9);
}
int main() {
   int N = 432;
   cout << "Maximum product is: " << max_product(N);
}

出力

Maximum product is: 243

  1. C++でn以下のすべての階乗数を検索します

    ここでは、n以下のすべての階乗数を出力する方法を説明します。数値Nは、正の数の階乗である場合、階乗数と呼ばれます。したがって、いくつかの階乗数は1、2、6、24、120です。 階乗数を印刷するために、階乗を直接見つける必要はありません。 i =1から始めて、階乗*iを出力します。最初は階乗は1です。理解を深めるためにコードを見てみましょう。 例 #include <iostream> using namespace std; void getFactorialNumbers(int n) {    int fact = 1;    int

  2. 各要素がN以下になるような一意のペアを見つけるC++プログラム

    この記事では、N以下の要素を持ち、いくつかの特定の条件に従う一意の数のペアを見つけるプログラムについて説明します- 2つの数値の差の二乗は、これら2つの数値のLCMと等しくなければなりません。 これらの2つの数値のHCFは、任意の2つの連続する数値の積として表すことができます。 この問題を解決するための最良のアプローチは、2つの連続した数(1から開始)を取り、それらの数の積の倍数を見つけることです。次に、倍数の中で、1つのペアの数値を指定するには、ペアの数値が最初に指定された条件を満たすかどうかを確認する必要があります。 たとえば、2と3の場合を考えます。それらの積は6にな