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

数値がC++でBleakであるかどうかを確認します


ここでは、数値がブリークであるかどうかを確認します。正の数xとxに設定されたビット数の合計として表すことができない場合、その数は暗いと言われます。したがって、x + set_bit_count(x)は、負でない数xの場合、nと等しくありません。

概念は非常に単純です。設定されたビット数+数値が数値と同じでない場合、それはブリークです。それ以外の場合はそうではありません。

#include <iostream>
using namespace std;
int set_bit_count(int x) {
   unsigned int bit_count = 0;
   while (x != 0) {
      x &= (x - 1);
      bit_count++;
   }
   return bit_count;
}
bool isBleakNumber(int n) {
   for (int i = 1; i < n; i++)
   if (i + set_bit_count(i) == n)
      return false;
      return true;
}
int main() {
   isBleakNumber(3) ? cout << "Yes\n" : cout << "No\n";
   isBleakNumber(4) ? cout << "Yes\n" : cout << "No\n";
}

出力

No
Yes

  1. NがC++の五角数であるかどうかをチェックするプログラム

    数Nが与えられた場合、タスクはその数が五角数であるかどうかを確認することです。五角形を形成するために配置できる数字は、五角形を形成するための点として使用できるため、五角形の数字です。たとえば、五角数のいくつかは1、5、12、22、35、51 .... 数式を使用して、その数が五角数であるかどうかを確認できます $$ p(n)=\ frac {\ text {3} * n ^ 2-n} {\ text {2}} $$ ここで、nは五角形の点の数です 例 Input-: n=22 Output-: 22 is pentagonal number Input-: n=23 Output-:

  2. アームストロング数をチェックするC++プログラム

    アームストロング数は、桁の合計が桁の総数の累乗に等しい数です。アームストロング数のいくつかの例は次のとおりです。 3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407 番号がアームストロング番号であるかどうかをチェックするプログラムは次のとおりです。 例 #include <iostream> #include <cmath< using namespa