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

指定された番号がC++でスパースであるかどうかを確認します


このセクションでは、数値がスパースであるかどうかを確認する方法を説明します。数値の2進表現に、2つまたは2つを超える連続した1がない場合、その数値はスパースであると言われます。数字が72のようなものだとします。これは01001000です。ここでは2つ以上の連続した1はありません。

数値がスパースであるかどうかを確認するには、数値をnとし、その数値を1ビット右にシフトして、ビット単位のANDを実行します。結果が0の場合、それはスパース数です。それ以外の場合はそうではありません。

#include <iostream>
using namespace std;
bool isSparseNumber(int n) {
   int res = n & (n >> 1);
   if(res == 0)
      return true;
   return false;
}
int main() {
   int num = 72;
   if(isSparseNumber(num)){
      cout << "This is sparse number";
   } else {
      cout << "This is not sparse number";
   }
}

出力

This is sparse number

  1. C++で多数が25で割り切れるかどうかを確認します

    ここでは、数値が25で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 最後の2桁が00の場合、数値は25で割り切れます。または、25で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv25(string num){    int n = num.length();    int last_two_digit_val = (num[n-2] - '0') * 10 +

  2. C++で多数が11で割り切れるかどうかを確認します

    ここでは、数値が11で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 数値が11で割り切れるかどうかを確認するには、奇数の位置の値の合計と偶数の位置の値の合計が同じである場合、その数値は11で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv11(string num){    int n = num.length();    long odd_sum = 0, even_sum =