演算法競賽入門經典(第2版)
第2章 迴圈結構程式設計
本章有兩個難題:習題2-4 子串行之和,習題2-5 分數化小數。
習題2-5 分數化小數 訪問量如此之大,證明讀者有需求,並且之前寫的程式有瑕疵,處理不了進製問題,故決定重寫該題**。2018-8-9 9:28
以下**為ac**,完全符合題意的**,可以應對測試資料 2018-8-9 9:57
輸入:999999 10000 3
輸出:case 1: 100.000
#include
int integer,decimal[110];//integer整數部分,decimal小數部分
int main()
if(a*10/b>=5)
}integer+=decimal[0];//整數部分進製處理。
printf("case %d: %d.",kase,integer);//列印整數部分及小數點
for(i=1;i<=c;i++)
printf("%d",decimal[i]);//列印小數部分。
printf("\n");
}return 0;
}以下的**有瑕疵,應對不了測試資料:
輸入:999999 10000 3
輸出:case 1: 100.000
感悟。1、利用c或c++自帶的浮點運算,不管怎麼試,是算不出滿足題意的小數字數。
2、回歸本源,分數化小數,手工怎麼算,計算機就怎麼算。
3、本題是整數取整,取餘的好例子。
4、本題還有乙個要注意,最後一位要四捨五入。
附上**,編譯環境dev-c++4.9.9.2
#include
int main()
return 0;
}
習題 2 5 分數化小數
模擬保留小數字的過程 思路 這道題主要要注意的是小數的位數需要人工輸入,就是模擬保留小數字的過程,具體的思路是先輸出整數字和小數點,小數字則通過上一次除后的所得餘數再除除數依次類推,到最後一位時要根據下一位的數值來判斷是否進製。這裡選擇題目的樣例就是1 6,輸出至小數點後4位數,先求出他們的商,既1...
2 5 分數化小數
輸入正整數a,b,c,輸出a b的小數形式,精確到小數點後c位。a,b 10 c 100。輸入包含多組資料,結束標記為a b c 0。樣例輸入 1 6 4 0 0 0 樣例輸出 case 1 0.1667 渣渣智本以為這道題很簡單,然而。如果很多很多很多小數點後的位數怎麼辦,也就是c,然後就找了很多...
演算法入門經典習題 2 5 分數化小數
題目 輸入正整數a,b,c,輸出 a b 的小數形式 精確到小數點後 c 位 a,b 10的六次方,c 100.輸入包含多組資料,結束標記為a b c 0 樣例輸入 1 6 4 0 0 0 樣例輸出 case 1 0.1667 理解 一開始就以為會是那樣的就正常想的用double來宣告一下結果,然後...