-1
私は整数で単純な除算をしようとしています。一連の減算を使用し、再帰を使用しようとします。加算と減算しか使えないコンピュータを使っていると想像してください。私は乗算と指数関数を作成しましたが、除算にもっとも時間があります。どんな助けや助言も遠くに行きます!分割のルーチン
#include<stdio.h>
int DIV(int m, int n){
if(m == 0){
return 0;
}
else if(n == 0){
return -1;
}
else if(n == 1){
return m;
}
else if(m > 0 && n > 0)
return DIV(m, n-1) - m;
} //exit
これまでのところ私のコードですが、エンディングステートメントのヘルプが必要です。また、int m
が分子であり、n
が分母です。私は途中でGNU Cを使用しています。
問題は...?クラッシュ?間違った結果? ...?後者の場合、いくつかの価値の例を示します。 「GNU C」は言語ではありません。 – deviantfan
技術的には、0/0はまだ未定義ですが、これは問題の一部ではありませんが、最初のifの前に2番目のifを置くと、分母が0の場合の答えは常に未定義です。 – Stephen
割り切れない?小数部分を持つように。また、nからmを減算し、加算と減算以外の使用が許可されていない場合は、ゼロに達するまで何回減算したかを数えることが唯一の方法です。 –