題目描述:編寫程式,接受3個以n/d形式輸入的分數,其中n(0<=n<=65535)為分子,d(0<=d<=65535)為分母,輸出它們的小數形式。如果小數形式存在迴圈節,則用括號括起來。如1/3=.3333…表示為.(3)。
輸入用例
8/5 1/3 11/13
輸出用例
8/5=1.6
1/3=.(3)
11/13=.(846153)
思路:當有餘數與之前餘數相同時則表明發生迴圈。剛開始無思路參考他人部落格,其實根本原因在於根本就不會判斷什麼樣的分數是有迴圈節的。
參考部落格:
參考1參考2
**:
#include
using
namespace std;
struct fraction
;//小數部分 };
intmain()
;//儲存餘數
printf
("%d/%d="
,fra[i]
.numerator,fra[i]
.denominator)
; fra[i]
.integer=fra[i]
.numerator/fra[i]
.denominator;
int cnt=
0,flag=-1
;//cnt小數字數 flag記錄迴圈開始的數字
r[cnt]
=fra[i]
.numerator%fra[i]
.denominator;
//得到餘數
while
(r[cnt]
)//若有此餘數與之前餘數相等 則發生迴圈 }if
(flag!=-1
)break
; cnt++
; r[cnt]
=r[cnt-1]
*10%fra[i]
.denominator;}if
(fra[i]
.integer!=
0) cout<.integer;
//整數部分不為0時輸出
cout<<
".";
//小數點
for(
int j=
0;j(flag==-1
) cout
else cout<<
")"<}return0;
}
分數轉小數
include include include ftd.h using namespace std 功能 根據輸入的分子與分母,輸出計算結果。無限非迴圈小數,直接輸出計算結果 輸入 denominator 分母 numerator 分子 輸出 decimaltostring 輸出計算結果 返回 1 ...
小數化分數(C )
問題描述 任何小數都能表示成分數的形式,對於給定的小數,編寫程式其化為最簡分數輸出,小數包括簡單小數和迴圈小數。輸入形式 第一行是乙個整數n,表示有多少組資料。每組資料只有乙個純小數,也就是整數部分為0。小數的位數不超過9位,迴圈部分用 括起來。輸出形式 對每乙個對應的小數化成最簡分數後輸出,佔一行...
php 百分數 php 百分數如何轉小數
php百分數轉小數的方法 首先建立乙個php示例檔案 然後定義乙個百分數 接著通過 float a 100 方法將百分數轉為小數 最後通過echo輸出轉換後的小數即可。php百分數轉小數,php 小數轉換百分數函式 阿星小棧 php百分號轉小數 a 20.544545 echo float a 10...