PAT1053 住房空置率 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
PAT1053 住房空置率 (20 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
心得
這么簡單的題,做了倆小時啊。
第一個小時用來發現第前兩個個誤解題意的地方,第二個小時用來發現第三個誤解題意的地方。
一直有兩個測試用例不通過,改來改去,最后直接對比別人的代碼,一行一行改啊。
還是那句話:
仔細讀題!!!
仔細讀題!!!
仔細讀題!!!
這題有幾個坑,都是讀題不仔細造成的:
(1) 邊界問題,“超過”,“低于”都是沒有等號的
(2)“可能空置”和“空置”是互斥的,一個房子不可能同時具有這兩種屬性
(3)每一行開頭已經給出這一行的總個數了,不需要自己判斷、分割數字
(4)若觀察期超過某給定閾值 D 天,是“觀察期”,不是“可能空置”期!
其實沒有必要定義class,讀取一個數據,就判斷一個數據即可。甚至都不需要數組。
題目
#include<iostream> using namespace std; class Room { public:double power[1000] = { 0 };double days = 0;int freeDays=0;bool mayFreeRoom = false;bool freeRoom = false; }; int main() {double totalRoom;double minPower;double minDay;cin >> totalRoom >> minPower >> minDay;//輸入Room room[1000];int i,j;int curDay = 0;getchar();//吸收回車for (i = 0; i < totalRoom;i++){cin >> room[i].days;for (j = 0; j < room[i].days; j++){cin >> room[i].power[j];}}//判斷for (i = 0; i < totalRoom; i++){for (j = 0; j < room[i].days; j++){if (room[i].power[j] < minPower){room[i].freeDays++;}}if (room[i].freeDays > room[i].days/2)//可能空閑{if (room[i].days > minDay)//空閑{room[i].freeRoom = true;}else room[i].mayFreeRoom = true;}}//計算double totalMayFree=0;double totalFree=0;for (i = 0; i < totalRoom; i++){if (room[i].mayFreeRoom == true){totalMayFree++;}if (room[i].freeRoom == true){totalFree++;}}//printf("%.1lf%% %.1lf%%", 100.0*totalMayFree / totalRoom, 100.0*totalFree / totalRoom);printf("%.1lf%% %.1lf%%\n", (double)(totalMayFree / totalRoom) * 100.0, (double)(totalFree / totalRoom) * 100.0);system("pause"); } 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的PAT1053 住房空置率 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ cin.putback()输入【
- 下一篇: PAT1054 求平均值 (20 分)【