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

Cセミコロンを使用せずに1からNまでの数字を印刷するプログラム


ここでは、問題のトリッキーな解決策を見ていきます。セミコロンを使用せずに1からNまでのいくつかの数字を印刷します。

この問題は2つの異なる方法で解決できます。 1つ目は反復法で、2つ目は再帰法です。

方法1

printf()関数は文字列の長さを返すため、ゼロ以外の値になります。結果を出力する条件で論理ANDを実行できます。次に、カウンターの値を増やします。

サンプルコード

#include<stdio.h>
#define N 20
int main(int num, char *argv[]) {
   while (num <=N && printf("%d ", num) && num++) {
      //The while body is empty.
   }
}

出力

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

方法2

2番目の方法では、再帰を使用して同じタスクを実行する方法を確認します。 main関数でいくつかの引数を渡します。このメインは再帰的に呼び出されます。

サンプルコード

#include<stdio.h>
#define N 20
main(int val) {
   if (val <=N && printf("%d ", val) && main(val + 1)) {
      //Body is empty
   }
}

出力

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  1. C++を使用して再帰を使用せずにルートからリーフへのパスを出力するプログラム

    このチュートリアルでは、ルートノードから特定のバイナリツリー内のすべてのリーフノードへのパスを出力するプログラムについて説明します。 たとえば、次の二分木があるとしましょう この二分木には、4つのリーフノードがあります。したがって、ルートノードからリーフノードへのパスは4つになります。 これを解決するために、反復アプローチを使用します。二分木のプレオーダートラバーサルを実行している間、マップに親ポインタを格納できます。トラバーサル中にリーフノードに遭遇したときはいつでも、親ポインタを使用してルートノードからそのパスを簡単に出力できます。 例 #include <bits/st

  2. 再帰を使用せずにリストをフラット化するPythonプログラム

    再帰手法を使用せずにリストをフラット化する必要がある場合は、ラムダ関数、「sum」メソッド、「map」メソッド、および「isinstance」メソッドを使用できます。 リストを使用して、異種の値(つまり、整数、浮動小数点、文字列などの任意のデータ型のデータ)を格納できます。 「isinstance」メソッドは、特定のパラメータが特定のデータ型に属しているかどうかを確認します。 匿名関数は、名前なしで定義される関数です。一般に、Pythonの関数は「def」キーワードを使用して定義されますが、無名関数は「lambda」キーワードを使用して定義されます。単一の式を取りますが、任意の数の引数を