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

すべてのn桁の厳密に増加する数値をC++で出力します


この問題では、数字Nが与えられ、すべてのn桁の数字を印刷する必要があります。 その桁はMSBからLSBに急激に増加しています。つまり、LSB(左)の数字は右の数字よりも小さいはずです。

問題を理解するために例を見てみましょう-

入力 − n =2

出力

01 02 03 04 05 06 07 08 09 12 13 14 15 16 17 18 19 23 24 25 26 27 28 
29 34 35 36 37 38 39 45 46 47 48 49 56 57 58 59 67 68 69 78 79 89.

説明 −ご覧のとおり、左側の数字は右側の数字よりも小さいです。

この問題を解決するために、MSB(左側)から1つずつ番号を付けてから、条件に応じて番号を生成します。次の位置には、i + 1から9までの数字が含まれます。iは、現在の位置の数字です。

コードロジックを実装するためのコード-

#include <iostream>
using namespace std;
void printIncresingNumbers(int start, string out, int n) {
   if (n == 0){
      cout<<out<<" ";
      return;
   }
   for (int i = start; i <= 9; i++){
      string str = out + to_string(i);
      printIncresingNumbers(i + 1, str, n - 1);
   }
}
int main() {
   int n = 3;
   cout<<"All "<<n<<" digit strictly increasing numbers are :\n";
   printIncresingNumbers(0, "", n);
   return 0;
}

出力

All 3 digit strictly increasing numbers are −
012 013 014 015 016 017 018 019 023 024 025 026 027 028 029 034 035 036 
037 038 039 045 046 047 048 049 056 057 058 059 067 068 069 078 079 089 
123 124 125 126 127 128 129 134 135 136 137 138 139 145 146 147 148 149 
156 157 158 159 167 168 169 178 179 189 234 235 236 237 238 239 245 246 
247 248 249 256 257 258 259 267 268 269 278 279 289 345 346 347 348 349 
356 357 358 359 367 368 369 378 379 389 456 457 458 459 467 468 469 478 
479 489 567 568 569 578 579 589 678 679 689 789

  1. C++で3と5で割り切れるすべての数値を印刷するプログラム

    このチュートリアルでは、指定された数値より3と5で割り切れるすべての数値を出力するプログラムについて説明します。 このために、Nという数字が与えられます。私たちのタスクは、3と5の両方で割り切れるN未満のすべての数字を印刷することです。 例 #include <iostream> using namespace std; //printing the numbers divisible by 3 and 5 void print_div(int N){    for (int num = 0; num < N; num++){    

  2. C++で数字のパターンを印刷するプログラム

    このチュートリアルでは、特定の数字のパターンを印刷するプログラムについて説明します。 私たちのタスクは、コードでループ構造を利用し、指定されたパターンを出力することです- 1 232 34543 4567654 567898765 例 #include<bits/stdc++.h> using namespace std; int main(){    int n = 5, i, j, num = 1, gap;    gap = n - 1;    for ( j = 1 ; j <=