-1

はい。これは課題であり、正直に言うと、私にとっては非常に頭の体操です.. プログラムの目標、または「問題」(数学の用語で見たい場合) は、2 つの数値を互いに割り算することです。整数と分数を互いに除算することができます。関数定義は次のようになります。

bool divide(int c1, int n1, int d1, int c2, int n2, int d2, char result[], int len)

c1、c2 - 整数

n1、n2 - 分子 1、分子 2

d1、d2 - 分母 1、分母 2

result[ ] - 回答を表示する文字配列

len - 結果で許可される文字数 []


私は単純に長い除算を使用してこの方法で答えを見つけますが、 doublefloat、またはstringを使用しないという制限があるため、アプローチに対するオプションがより制限されます。

幸いなことに、私は最終的な解決策にかなり近づいているので、次の動きについてアドバイスを求めたいと思います. これまでの私のプロセスは次のとおりです。

1) 各数を仮分数に変換する

2) 結果 1 * (1 / 結果 2 ) を取る

3) 解の整数部分を見つける (存在する場合)

4) (仮分数から) 分子 % 分母をとって、私が持っている混合分数の新しい分子を見つけます。

5) 私は今ここにいて、分母の基数 10 の倍数を見つけようとしているので、混合分数を 10 進形式で表すことができます。

4

1 に答える 1

2

(A/B) / (C/D) = (A/B) x (D/C) = (AD) / (BC)

したがって、AD と BC を計算してから、最小項に減らします。

実際に割り算をしたい場合は、紙の上で行うのと同じ方法で行います。

于 2013-09-18T03:53:43.543 に答える