ホームページ > バックエンド開発 > C++ > ループや条件文を使用せずに数値を連続的に出力するにはどうすればよいでしょうか?

ループや条件文を使用せずに数値を連続的に出力するにはどうすればよいでしょうか?

Linda Hamilton
リリース: 2024-11-27 03:33:14
オリジナル
592 人が閲覧しました

How Can We Print Numbers Sequentially Without Loops or Conditional Statements?

ループや条件なしで数値を出力する

プログラミングでは、多くの場合、一連の数値を出力または表示する必要があります。一般的なアプローチは、ループまたは条件ステートメントを使用して、目的の範囲を反復処理することです。ただし、これらの構造に依存せずに一連の数値を出力することは可能です。

C または C で 1 から 1000 までを出力

数値を出力するタスク用1 から 1000 まで、考えられる解決策の 1 つは再帰関数を使用します。

#include <stdio.h>

void main(int j) {
  printf("%d\n", j);
  (&&main + (&exit - &main)*(j/1000))(j+1);
}
ログイン後にコピー

この関数は自分自身を呼び出します。再帰的に、値 1000 に達するまでパラメータ j をインクリメントします。ポインタ エラーを避けるために、関数ポインタの前にアドレス演算子 & が使用されます。

標準 C バージョン

上記の関数のより標準的な C バージョンは次のとおりです。

#include <stdio.h>
#include <stdlib.h>

void f(int j) {
  static void (*const ft[2])(int) = { f, exit };

  printf("%d\n", j);
  ft[j/1000](j + 1);
}

int main(int argc, char *argv[]) {
  f(1);
}
ログイン後にコピー

このバージョンでは静的関数が使用されます。

結論

これらの方法は最も効率的または洗練された解決策ではないかもしれませんが、これらの方法は、数値シーケンスを出力する可能性を示しています。ループまたは条件文を使用します。

以上がループや条件文を使用せずに数値を連続的に出力するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート