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

C ++の例を含むDisarium番号?


それぞれの位置で累乗された桁の合計がその数自体と等しい数は、ディサリウム数と呼ばれます。

noOfDigits(int num)関数は、数値を取得し、残りの桁が1つしかないときに、数値を常に10で除算することにより、桁数を返します。反復ごとに、数字変数は数字を追跡するためにインクリメントされ、whileループが終了すると返されます。

int noOfDigits(int num){
   int digits = 0;
   int temp = num;
   while (temp){
      temp= temp/10;
      digits++;
   }
   return digits;
}

次に、isDisarium(int num)はブール関数であり、数値を取得して、それがDisarium数値であるかどうかをチェックします。数字mod10で右端の数字を取り、数字システムの数字の位置に電力を供給します。次に、数値に電力を供給した結果が合計に加算されます。 whileループは、数字がなくなるまで実行されます。合計がnumに等しい場合はtrueが返され、そうでない場合はfalseが返されます。

isDisarium(int num){
   int digits = noOfDigits(num);
   int sum = 0;
   int temp = num;
   while (temp){
      int rightDigit = temp%10;
      sum = sum + pow(rightDigit, digits--);
      temp = temp/10;
   }
   return (sum == num);
}

番号がdisarium番号であるかどうかをチェックする次の実装を見てみましょう。

#include<iostream>
#include<math.h>
using namespace std;
int noOfDigits(int num){
   int digits = 0;
   int temp = num;
   while (temp){
      temp= temp/10;
      digits++;
   }
   return digits;
}
bool isDisarium(int num){
   int digits = noOfDigits(num);
   int sum = 0;
   int temp = num;
   while (temp){
      int rightDigit = temp%10;
      sum = sum + pow(rightDigit, digits--);
      temp = temp/10;
   }
   return (sum == num);
}
int main(){
   int num = 518;
   if( isDisarium(num))
      cout <<num<<" is a Disarium Number"<<endl;
   else
      cout << num<<" is not a Disarium Number"<<endl;
   return 0;
}

出力

上記のコードは次の出力を生成します-

518 is a Disarium Number

  1. C++での算術数

    算術数は、すべての正の除数の平均が整数である数です。つまり、除数の数が除数の合計を除算できる場合、nは算術数です。 概念をよりよく理解するために例を見てみましょう。 Input : n = 6 Output : YES Explanation : Divisors are 1 , 2 , 3 , 6 Sum = 1+2+3+6 = 12 Number of divisors = 4 Sum of divisors / number of divisor = 12 / 4 = 3 アルゴリズム Step 1 : Calculate the sum of divisors and store i

  2. C++のCHAR_BIT

    CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() {    int x = 28;    int a = CHAR_BIT*sizeof(x);    stack<bool> s;    cout << "T