題目54 小明的存錢計畫

2021-08-10 14:50:26 字數 1313 閱讀 8589

小明的零花錢一直都是自己管理。每個月的月初媽媽給小明300元錢,小明會預算這個月的花銷,並且總能做到實際花銷和預算的相同。

為了讓小明學習如何儲蓄,媽媽提出,小明可以隨時把整百的錢存在她那裡,到了年末她會加上20%還給小明。因此小明制定了乙個儲蓄計畫:每個月的月初,在得到媽媽給的零花錢後,如果他預計到這個月的月末手中還會有多於100元或恰好100元,他就會把整百的錢存在媽媽那裡,剩餘的錢留在自己手中。

例如11月初小明手中還有83元,媽媽給了小明300元。小明預計11月的花銷是180元,那麼他就會在媽媽那裡存200元,自己留下183元。到了11月月末,小明手中會剩下3元錢。

小明發現這個儲蓄計畫的主要風險是,存在媽媽那裡的錢在年末之前不能取出。有可能在某個月的月初,小明手中的錢加上這個月媽媽給的錢,不夠這個月的原定預算。如果出現這種情況,小明將不得不在這個月省吃儉用,壓縮預算。

現在請你根據2023年1月到12月每個月小明的預算,判斷會不會出現這種情況。如果不會,計算到2023年年末,媽媽將小明平常存的錢加上20%還給小明之後,小明手中會有多少錢。

第一行輸入乙個整數n,表示測試資料的組數(n<=10)

每組測試資料輸入12行資料,每行包含乙個小於350的非負整數,分別表示1月到12月小明的預算。

每組輸出包括一行,這一行只包含乙個整數。如果儲蓄計畫實施過程中出現某個月錢不夠用的情況,輸出-x,x表示出現這種情況的第乙個月;否則輸出到2023年年末小明手中會有多少錢(如果是小數,請四捨五入到整數字)。

1 290

230

280

200

300

170

340

50 90

80 200

60-7

使用的就是乙個大數相加的演算法思想,res代表就是每個月的剩餘錢,sum代表存入的錢數。在大數相加中,res代表的就是carray進製數,sum代表的是當前數。

/*

author:楊林峰

date:2017.11.10

nyoj(54):小明的存錢計畫

*/#include

#include

using

namespace

std;

int main()

for (int i = 0; i < 12; i++)

else

//小於0時,則返回當前月的相反數

}ans = sum * 120 + res;

if (!ret)

cout

<< ret << endl;

}return

0;}

小明的存錢計畫

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 小明的零花錢一直都是自己管理。每個月的月初媽媽給小明300元錢,小明會預算這個月的花銷,並且總能做到實際花銷和預算的相同。為了讓小明學習如何儲蓄,媽媽提出,小明可以隨時把整百的錢存在她那裡,到了年末她會加上20 還給小明。因此小...

小明的存錢計畫

小明的存錢計畫 時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 小明的零花錢一直都是自己管理。每個月的月初媽媽給小明300元錢,小明會預算這個月的花銷,並且總能做到實際花銷和預算的相同。為了讓小明學習如何儲蓄,媽媽提出,小明可以隨時把整百的錢存在她那裡,到了年末她會加上20 ...

小明的存錢計畫

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 小明的零花錢一直都是自己管理。每個月的月初媽媽給小明300元錢,小明會預算這個月的花銷,並且總能做到實際花銷和預算的相同。為了讓小明學習如何儲蓄,媽媽提出,小明可以隨時把整百的錢存在她那裡,到了年末她會加上20 還給小明。因此小...