這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11757 |
這個作業的目標 | 回顧數據類型和表達式 |
學號 | 20208993 |
2.1 題目:給定一個十進制正整數N,寫下從1開始,到N的所有整數,然后數一下其中出現的所有“1”的個數。
題目內容描述 :
例如:
N=2,寫下1,2。這樣只出現了1個”1“。
N=12,我們會寫下1,2,3,4,5,6,7,8,9,10,11,12。這樣,1的個數是5。
問題是:
1.寫出一個函數f(N),返回1到N之間出現的”1“的個數,比如f(12)=5;
2.滿足條件”f(N)=N“的最大的N是多少?
1.貼出代碼圖片,寫出解題思路,列出測試數據(5分)
解題思路:利用循環從1到N一個個的提取出來判斷和統計1的個數,利用頭文件time.h中的clock庫函數記錄程序開始
時間和結束時間,將兩時間相減得到程序運行用時。
2.給出不同測試數據的運算時間,如果你的運算時間不變,說明你的測試數據不夠大(5分)
3.思考針對足夠大的數據,如何減少運算時間,並給出在原有算法基礎上的改進算法和改進思路。
要減少運行時間就得從循環結構入手,減少循環次數自然而然就減少了運行的時間。通過設置條件跳過其中不必要的循環,
如果十位不是1個位是1則加8可減少循環次數,減少運行時間。
改進算法如圖所示:
改進前測試數據:
改進后測試數據:
2.2 將上題中多組測試數據寫入文件,並給出測試程序以檢測你的代碼有沒有問題,貼出你的代碼、運行結果和文件內容。(5分)
2.3 用自己的語言回答兩個問題,並給出所查閱資料的引用(10分)
1.什么是文件緩沖系統?工作原理如何?
文件緩沖系統協助內存與磁盤交換數據,提高內存與磁盤交換數據的速度。
工作原理:因為磁盤文件數據的存取速度與內存數據存取訪問速度不同,所以在文件操作時,系統自動為每一個文件分配一塊文件緩沖區,內存與磁盤交換數據時,
先將數據放置在緩沖區,當緩沖區數據達到一定大小時再將數據移除,再接受新的數據。
2.什么是文本文件和二進制文件?
文本文件:以字符ASCII碼值進行儲存與編碼的文件。文件內容為字符,若將數據放入文本文件中,數據將以其對應的ASCII碼值存儲在文件中。
二進制文件:儲存二進制數據的文件。儲存在里面的數據只有計算機才能識別。
2.4 本周學習總結(15分)
1 學習進度條(5)
2 累積代碼行和博客字數(5)
3 學習內容總結和感悟(5分)
感悟:1.覺得假期有點玩得太過了,代碼寫起吃力。
2.之前學的知識遠遠不夠,得用課外時間多學點課外知識。
3.這個學期得更加努力了。