ホームページ  >  記事  >  バックエンド開発  >  C言語のブール配列パズル

C言語のブール配列パズル

WBOY
WBOY転載
2023-08-29 15:05:051156ブラウズ

C言語のブール配列パズル

これは、2 つの要素を含む配列内のすべての数値を 0 に変更する必要がある配列ベースのパズルです。配列の 1 つの要素は 0 ですが、別の要素は 0 である場合とそうでない場合があります。

このパズルを解くには、プログラムはゼロ以外の要素を見つけて、それを 0 に変更する必要があります。

ブール配列パズルを解くために必要な制約は次のとおりです。

  • 許可される演算は補数であり、他の演算は許可されません。
  • ループと条件ステートメントは許可されません。
  • 直接割り当ても許可されません。

ブール配列パズルを解くプログラム

#include <iostream>
using namespace std;
void makeZero(int a[2]) {
   a[ a[1] ] = a[ !a[1] ];
}
int main() {
   int a[] = {1, 0};
   makeZero(a);
   cout<<"arr[0] = "<<a[0]<<endl;
   cout<<"arr[1] = "<<a[1];
   return 0;
}

出力

arr[0] = 0
arr[1] = 0
You can use other ways too. Like this one which does not require the negation operation.
a[ a[1] ] = a[ a[0] ]

以上がC言語のブール配列パズルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。