11,805
社区成员




津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
例如 11 月初津津手中还有 83 元,妈妈给了津津 300 元。津津预计 11 月的花销是 180 元,那么她就会在妈妈那里存 200 元,自己留下 183 元。到了 11 月月末,津津手中会剩下 3 元钱。
津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。
现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。
输入描述:
12 行数据,每行包含一个小于 350 的非负整数,分别表示 1 月到 12 月津津的预算。
输出描述:
一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 -X , X 表示出现这种情况的第一个月;否则输出到 2004 年年末津津手中会有多少钱。
输入样例:
290
230
280
200
300
170
340
50
90
80
200
60
输出样例:
-7
many = 0
end_many = 0
false_month = 0
many_of_month = [290,230,280,200,300,170,340,50,90,80,200,60]
for i in range(12):
many += 300
# 每个月的零用钱
# h = int(input(f"请输入{i}月的消费(<=350):"))
h = many_of_month[i]
many -= h
nums = many//100
# print(f"消费{h},还剩{many},存款{end_many}")
if nums >= 1:
# 存钱
end_many += 100nums
many -= 100nums
print(f"存钱{100nums}")
elif many < 0:
print("归零")
many = 0
false_month += 1
# 失败的次数
else:
print("不存钱")
# 不存钱
if false_month:
# 失败了
print(f"-{false_month}")
else:
# 年金奖
print(end_many1.2)
#include <iostream>
using namespace std;
int main() {
int savings = 0; // 存储在妈妈那里的钱
int currentMoney = 0; // 当前手中的钱
for (int month = 1; month <= 12; month++) {
int budget;
cin >> budget; // 输入每个月的预算
currentMoney += 300 - budget; // 加上这个月妈妈给的钱并减去花费
if (currentMoney < 0) {
// 如果当前月钱不够用,输出月份(负数形式)
cout << -month;
return 0; // 程序结束
}
// 计算可以存储的整百金额
int deposit = (currentMoney / 100) * 100;
savings += deposit; // 存入妈妈那里
currentMoney -= deposit; // 扣除存储的钱
}
// 计算年末手中的钱(包括存款增值)
cout << currentMoney + savings * 1.2;
return 0;
}
budget = [int(input()) for _ in range(12)]
savings = 0
for i in range(12):
if savings + 300 < budget[i]:
print(-(i + 1))
break
if (savings + 300 - budget[i]) >= 100:
saved = (savings + 300 - budget[i]) // 100 * 100
savings += (savings + 300 - budget[i]) - saved
if 'saved' not in locals():
savings *= 1.2
print(int(savings))
#include <stdio.h>
#include <stdint.h>
int main(void)
{
uint32_t budget[12]={0}; //预算
uint8_t i=0;
//剩余零钱
int res=0;
//储存零钱
uint32_t save=0;
printf("请输入各月预算:\n");
for(i=0;i<12;i++)
{
scanf("%d",&budget[i]);
}
for(i=0;i<12;i++)
{
res+=300;
printf("剩余:%d,花销:%d\n",res,budget[i]);
res-=budget[i];
if(res<0)
{
printf("save:%d\n",save);
printf("当前超出月份:%d\n",i+1);
return -(i+1);
}
else
{
save+=(res/100)*100;
res%=100;
printf("save:%d,res:%d\n",save,res);
}
}
save*=1.2;
printf("save:%d\n",save);
return save;
}
题目链接
以下是本蒟蒻的代码。
#include<bits/stdc++.h>
using namespace std;
long long s,a[1001],o;
int main()
{
for(int i=1;i<=12;i++)
cin>>a[i];
for(int i=1;i<=12;i++)
{
s+=300;
if(a[i]>s)
{
cout<<"-"<<i;
return 0;
}
o+=((int)((s-a[i])/100))*100;
s=(s-a[i])%100;
}
cout<<o*1.2+s;
return 0;
}
#include <stdio.h>
#include
int main()
{
//定义剩余零钱
int rest = 300;
//定义存的钱
int bank = 0;
//定义每个月的预算
int pre[12] = { 0 };
for (int i = 0; i < 12; i++)//定义月份
{
scanf_s("%d", &pre[i]);
if (pre[i] > 350) { printf("joke?try again"); scanf_s("%d", &pre[i]); }
}
for (int i = 0; i < 12; i++)
{
//如果剩余零钱不够本月预算,输出月份并退出
//if (rest < pre[i]) { printf("over:-%d\n", i + 3); break; }
rest = rest - pre[i];//290 230 280 200 300 170 340 50 90 80 200 60
//剩余零钱大于等于100,将余钱取整百数存入bank,剩余的钱作为下个月的基础零钱,否则直接作为下个月的基础零钱
if (rest >= 0)
{
bank += (rest / 100) * 100;
rest = rest - (rest / 100) * 100;
rest += 300;
}
else { printf("over:-%d\n", i + 1); return 0; }
}
printf(" %d ", bank);
}
```python
budgets = []
for _ in range(12):
budgets.append(int(input()))
savings = 0
for month in range(12):
if savings + 300 < budgets[month]:
print(f"-{month + 1}")
break
else:
savings += (savings + 300 - budgets[month]) // 100 * 100
savings -= budgets[month]
if savings >= 0:
savings = int(savings * 1.2)
print(savings)
```
int main()
{
int money = 0, yu = 0, cun = 0, count = 0, s = 0, sum = 0;
int mon[12] = { 0 };
for (int i = 0; i < 12; i++)
{
printf("第%d个月的预算是:", i + 1);
scanf("%d", &mon[i]);
while (mon[i] >= 350)
{
printf("这个月的预算大于等于了350,请重新输入:");
scanf("%d", &mon[i]);
}
}
for (int i = 0; i < 12; i++)
{
s += 300;
yu = s - mon[i];
s -= mon[i];
if (yu >= 0)
{
count = yu/100;
cun = (count * 100);
s -= cun;
sum += cun;
}
else
{
printf("在第%d个月的时候预算不够", i+1);
goto out;
}
}
money = sum * 1.2+s;
printf("在2004年结束他可以拿到%d元", money);
out: return 0;
}
int main()
{
int money = 0,yu = 0, cun = 0, count = 0, s = 0,sum = 0;
int mon[12] = { 0 };
for (int i = 0; i < 12; i++)
{
printf("第%d个月的预算是:", i + 1);
scanf("%d", &mon[i]);
while (mon[i] >= 350)
{
printf("这个月的预算大于等于了350,请重新输入:");
scanf("%d", &mon[i]);
}
}
for (int i = 0; i < 12; i++)
{
s += 300;
yu = s - mon[i];
s -=mon[i];
if (yu >= 0)
{
count = yu/100;
cun = (count * 100);
s -= cun;
sum += cun;
}
else
{
printf("在第%d个月的时候预算不够", i+1);
goto out;
}
}
money = sum * 1.2+s;
printf("在2004年结束他可以拿到%d元", money);
out:
return 0;
}
a = [0] * 13
e = [0] * 12
c = 300
d = 0
g = 0
for i in range(12):
b = int(input())
a[i] = b
for i in range(12):
c = c - a[i]
if c < 0:
d = 1
f = i + 1
break
elif c >= 0:
c += 300
if c - a[i + 1] >= 100:
e[i] = ((c - a[i + 1]) // 100) * 100
c = c - ((c - a[i + 1]) // 100) * 100
if d == 1:
print(-f)
else:
for i in range(11):
g += e[i]
print(int(e[11] + c + g + g * 0.2 - 300))
#include
#include
using namespace std;
int main()
{
int save = 0;
int budget[12];
int count = 0;
for (int i = 0; i < 12; i++)
{
cout << "请输入你第" << i+1 << "个月的预算" << endl;
cin >> budget[i];
while (budget[i] > 350)
{
cout << "你预算超过了350元,请调整预算不超过350" << endl;
cin >> budget[i];
}
system("cls");
}
int month;
for (month = 1; month <= 12; month++)
{
int n = month - 1;
count += 300;
if (count >= budget[n])
{
count = count - budget[n];
int m = count / 100;
if (m >= 1)
{
save = m * 100 + save;
count = count - m * 100 ;
}
}
else
{
count = count - budget[n];
break;
}
}
if (count >= 0)
{
count = save * 1.2 + count;
cout << "预算正常" << endl;
cout << "今年年末总共还有" << count << "元" << endl;
}
else
{
cout << "预算超支" << endl;
cout << "-" << month << endl;
}
return 0;
}
// 定义每个月还剩余多少
let num = 0;
// 定义每个月开销多少
let overhead = 0;
// 定义每个月存多少
let save = 0;
// 定义一年后存了多少钱
let arrsave = 0;
// 定义花销多少钱
let arroverhead = 0;
// 定义最后存够一年后手中有多少钱
let sum = 0;
// 循环12个月
for (var i = 1; i <= 12; i++) {
// 设立判断循环条件
if(i<=12){
// 每个月剩余的金额加上每个月的300
num = num + 300;
// console.log(`第${i}月还有${num}`);
overhead = prompt(`请输入${i}月要开销多少钱:`) - 0;
save = prompt(`请输入${i}月要存多少钱`) - 0;
// 根据存入的金额来判断是否整百,如果不是则一直循环输入,直到输入结果为整百
while(save%100 != 0){
alert("存入的金额不是整百请重新存入");
// 输入第一个月要存入的金额
save = prompt(`请输入${i}月要存多少钱`) - 0;
}
// 每个月除去开销和存款的余额
num = num - overhead - save;
// 将每次存入的金额累加进存放的变量
arrsave += save;
arroverhead += overhead;
// console.log(`第${i}个月共开销${arroverhead}`);
// console.log(`第${i}个月共存入${arrsave}`);
// console.log(`第${i}月共还剩${num}`);
// 根据判断这个月的剩余来确定是否钱不够用
if (num < 0) {
// 如果不够用则输出这个月的月份
console.log(`第${i}个月钱不够用`);
break;
}
// 设立条件当为第12个月的时候查看手中存款加上剩余的总金额
if (i == 12) {
// console.log(arrsave);
// 存款为原来的20%
arrsave = arrsave * 1.2;
// 手中剩余的金额加上涨幅的存款
sum = num + arrsave;
console.log(sum);
break;
}
}
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int deposit = 0;
int count = 0;
int budget[12];
for (int i = 0; i < 12; i++)
{
scanf ("%d", &budget[i]);
}
int month;
for (month = 1; month <= 12; month++)
{
int n;
n = month - 1;
count = count + 300;
if (count >= budget[n])
{
int difference = count - budget[n];
int m = difference / 100;
if (m >= 1)
{
count = count - m*100 - budget[n];
deposit = deposit + m*100;
}
}
else
{
count = count - 350;
break;
}
}
if (count >= 0)
{
count = deposit*1.2 + count;
printf ("%d",count);
}
else
{
printf ("-%d",month);
}
return 0;
}
import math
fixed=300
sumsave=0
left=0
choice=[]
for _ in range(12):
choice.extend([int(input(""))]) #每月津津的预算
if len(choice)==12:
for i in range(12):
ep=choice[i]
left1=left+fixed-ep
if left1>=100:
left=left1%100
save=math.floor(left1/100)#若存钱当月存的钱
sumsave=sumsave+save#总存储的金额数除以了100
elif left1<0:
print(left1)
break
else:
left=left1#不存钱当月剩余
sum=sumsave*120#算上利息
print(sum)
#include <iostream>
using namespace std;
int main(){
int m[13];
int q=0;
int n=0;
for(int i=1;i<=12;i++)
cin>>m[i];
for(int i=1;i<=12;i++)
{
q+=300;
if(q<m[i])
{
cout<<-i<<endl;
return 0;
}
else
q-=m[i];
while(q>=100){
q-=100,n++;
}
}
cout<<n*120+q<<endl;
return 0;
}
# 定义每个月妈妈给津津的零花钱(单位:元)
money = 300
# 定义每个月津津的预算(单位:元)
budget = []
for i in range(12):
budget.append(int(input()))
# 定义津津手中的钱(单位:元)
cash = 0
# 定义津津存在妈妈那里的钱(单位:元)
savings = 0
# 定义是否出现钱不够用的情况
flag = False
# 遍历每个月
for i in range(12):
# 每个月初,津津得到妈妈给的零花钱
cash += money
# 如果津津手中的钱大于等于100元,她就会把整百的钱存在妈妈那里
if cash >= 100:
savings += (cash // 100) * 100
cash -= (cash // 100) * 100
# 如果津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算,就输出-X
if cash + money < budget[i]:
print(-i-1)
flag = True
break
# 否则,津津按照预算花费这个月的钱
else:
cash -= budget[i]
# 如果没有出现钱不够用的情况,就输出到年末津津手中会有多少钱
if not flag:
print(int(cash + savings * 1.2))