#include <iostream>
#include <string>
#include <vector>
using namespace std;
void divide(int a, int b, int N) {
string result;
int integerPart = a / b;
result = to_string(integerPart) + ".";
a = a % b;
for (int i = 0; i < N; ++i) {
a *= 10;
int digit = a / b;
result += to_string(digit);
a = a % b;
}
cout << result << endl;
}
int main() {
int a, b, N;
while (cin >> a >> b >> N) {
divide(a, b, N);
}
return 0;
}
divide**:a 是被除數,b 是除數,N 是小數點後需要的精度。N。a, b, N。divide 函數進行計算並輸出結果。
為了實現精確的小數運算,我們需要處理大數運算並且能夠精確到小數點後多位。C++ 中可以使用字串來模擬大數運算,這樣可以避免浮點數運算精度不足的問題。
以下是實現這個功能的 C++ 程式碼:
C++ 程式碼
#include #include #include using namespace std; void divide(int a, int b, int N) { string result; int integerPart = a / b; result = to_string(integerPart) + "."; a = a % b; for (int i = 0; i < N; ++i) { a *= 10; int digit = a / b; result += to_string(digit); a = a % b; } cout << result << endl; } int main() { int a, b, N; while (cin >> a >> b >> N) { divide(a, b, N); } return 0; }
說明
**函數divide**:
- 參數
a是被除數,b是除數,N是小數點後需要的精度。- 首先計算整數部分,並將其轉換為字串並加上小數點。
- 然後進行小數部分的計算,通過模擬手工除法來逐位計算小數部分。
- 將每一位結果追加到結果字串中,直到達到所需的精度
N。 主程式:
- 不斷讀取輸入的三個正整數
a,b,N。- 調用
divide函數進行計算並輸出結果。
測試
你可以將這段程式碼複製到本地的C++編譯器中進行測試,並輸入範例資料,檢查輸出結果是否正確。如果有任何問題或需要進一步的調整,請告訴我。AI