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

C++プログラムで「/」演算子を使用しない除算


このチュートリアルでは、除算(/)演算子を使用せずに数値を除算する方法を学習します。

2つの数値を指定しました。プログラムは、除算演算の商を返す必要があります。

除算には減算(-)演算子を使用します。

問題を解決するための手順を見てみましょう。

  • 被除数と除数を初期化します。

  • 数値がゼロの場合は、0を返します。

  • 配当と除数の符号を確認して、結果がマイナスになるかどうかを保存します。

  • カウントを0に初期化します。

  • 1番が2番以上になるまで実行されるループを作成します。

    • 1番から2番を引き、その結果を1番に割り当てます

    • カウンターを増やします。

  • カウンターを印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
int division(int num_one, int num_two) {
   if (num_one == 0) {
      return 0;
   }
   if (num_two == 0) {
      return INT_MAX;
   }
   bool negative_result = false;
   if (num_one < 0) {
      num_one = -num_one ;
      if (num_two < 0) {
         num_two = -num_two ;
      }
      else {
         negative_result = true;
      }
   }
   else if (num_two < 0) {
      num_two = -num_two;
      negative_result = true;
   }
   int quotient = 0;
   while (num_one >= num_two) {
      num_one = num_one - num_two;
      quotient++;
   }
   if (negative_result) {
      quotient = -quotient;
   }
   return quotient;
}
int main() {
   int num_one = 24, num_two = 5;
   cout << division(num_one, num_two) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

4

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++を使用して再帰を使用せずにルートからリーフへのパスを出力するプログラム

    このチュートリアルでは、ルートノードから特定のバイナリツリー内のすべてのリーフノードへのパスを出力するプログラムについて説明します。 たとえば、次の二分木があるとしましょう この二分木には、4つのリーフノードがあります。したがって、ルートノードからリーフノードへのパスは4つになります。 これを解決するために、反復アプローチを使用します。二分木のプレオーダートラバーサルを実行している間、マップに親ポインタを格納できます。トラバーサル中にリーフノードに遭遇したときはいつでも、親ポインタを使用してルートノードからそのパスを簡単に出力できます。 例 #include <bits/st

  2. C ++プログラムを使用してプログラムを起動するにはどうすればよいですか?

    ここでは、メモ帳などのサードパーティアプリケーションやC++プログラムを使用したものを起動する方法を説明します。このプログラムは非常に単純で、コマンドプロンプトコマンドを使用してこのタスクを実行できます。 system()関数内でアプリケーション名を渡します。これにより、それに応じて開きます。 例 #include <iostream> using namespace std; int main() {    cout >> "Opening Nodepad.exe" >> endl;    sy