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

C++でDで割り切れるN桁の数値を検索します


NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。

#include<iostream>
using namespace std;
string nDigitDivByD(int n, int d) {
   string ans = "";
   if (d < 10) {
      ans += to_string(d);
      for (int i = 1; i < n; i++)
      ans += "0";
   }
   else {
      if (n == 1)
         return "Cannot find any number";
      else {
         string temp = to_string(d);
         ans += to_string(d);
         for (int i = 0; i < n-temp.length(); i++)
         ans += "0";
      }
   }
   return ans;
}
int main() {
   int n = 5, d = 15;
   cout << nDigitDivByD(n, d);
}

出力

15000

  1. C++で3で割り切れるが6で割り切れないnの順列を見つける

    数nがあり、この数の順列を見つける必要があるとします。これは3で割り切れますが、6で割り切れません。そのような値を作成できない場合は、-1を返します。たとえば、nが336の場合、出力は363になります。 数字が6で割り切れるということは、3と2で割り切れるということです。したがって、3で割り切れる各偶数は、6で割り切れます。3で割り切れる数の桁を入れ替えると、 、奇妙なことに、それは結果になります。 例 #include<iostream> #include<cmath> using namespace std; int findNumber(int n) { &nb

  2. C++で数字dを含む番号を検索します

    数字dと上限nがあるとします。 0からnの範囲のdを含むすべての数値を見つける必要があります。したがって、n =20で、桁が3の場合、数値は[3、13]になります。 この問題を解決するために、すべての数値を文字列として受け取り、文字列に数字が含まれている場合は数値が出力され、そうでない場合は無視されます。 例 #include<iostream> using namespace std; int getAllNumWithDigit(int n, int d) {    string str = "";    str +