之前一直總是簡單的想將分數化為小數進行計算,其實使用相應的結構進行分子分母的分開儲存,可以有奇效;
分數的儲存:
struct fraction;
其中up代表分子,down代表分母;
對於分數,有基本的幾個規則:
1.正負號掛在分子上;
2.當分數表示0的時候,分子為0,分母為1;
3.分子分母必須達到最簡,也就是沒有1以外的公約數;
當分數進行四則運算的時候,也是基於這三條的性質來進行化簡;
fraction reduction(fraction result)
if(result.up==0)else
return result;
}
其中值得注意的是進行最大公約數計算的時候一定要注意注意分子可能為負,所以要進行絕對值的提前處理;
分數的四則運算:
在上述化簡函式的基礎上,我們就可以根據該規則進行相應的四則運算,四則運算嚴格遵循計算的通分規律;
1.加法運算:
fraction add(fraction f1,fraction f2)
2.減法運算:
fraction minu(fraction f1,fraction f2)
3.乘法運算
fraction multi(fraction f1,fraction f2)
4.除法運算:
fraction divide(fraction f1,fraction f2)
值得注意的是這裡採用的除法的倒數計算;
分數的輸出形式:
對於乙個正常形式的分數,往往有三種形式:
1.整數:此時只輸出分子(由於程式**裡對分子分母進行化簡,所以如果有整數分母一定為1);
2.真分數:此時按照a/b的格式輸出;
3.假分數:此時應該在按照帶分數的格式輸出,並且符號在前;
**如下:
void showresult(fraction r)else
}
值得注意的是當進行帶分數計算的時候,計算其後真分數餘數的時候,一定要注意abs絕對值得處理; 分數的表示以及計算 c
之前一直總是簡單的想將分數化為小數進行計算,其實使用相應的結構進行分子分母的分開儲存,可以有奇效 分數的儲存 struct fraction 其中up代表分子,down代表分母 對於分數,有基本的幾個規則 1.正負號掛在分子上 2.當分數表示0的時候,分子為0,分母為1 3.分子分母必須達到最簡,也...
分數的表示 化簡以及輸出
使用結構體來儲存只有分子和分母的分數 struct fraction 有三個注意點 使用down為非負數。如果分數為負,則令分子up和分母down都變為相反數 如果分子up為0,則令分母down為1 約分 求出分子絕對值與分母絕對值的最大公約數d,然後令分子 分母同除以d fraction redu...
中文單詞的表示以及相似度計算方法
詞的獨熱表示 one hot representation 給定乙個詞典 我,是,計算機專業,的,學生 1 求給定單詞的表示 我 1,0,0,0,0 計算機專業 0,0,1,0,0 學生 0,0,0,0,1 每個單詞的長度是詞典的長度,詞典長度為5,對於詞典和第乙個單詞 我 來說,詞典中 我 出現,...