指定された番号が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
-
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 +
-
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 =