11 条题解
-
6
根据题意模拟即可。
由于题目限定死了月底津津一定会存钱,因此就很简单了。考虑用一个变量 表示在妈妈那里存了多少钱, 表示手上剩余多少钱。那么答案就是 。
对于不行的情况,即为剩下的钱加上 300 仍然小于花销,那就不行了。 至于 sum 和 ans 的更新这里就不多赘述了,具体见代码。
AC code(求点赞)
#include <bits/stdc++.h> using namespace std; int main(){ int ans=0; int sum=0; for(int i = 1;i<=12;i++){ int s;cin>>s; if(ans+300<s){ cout<<'-'<<i; return 0; } sum+=(300-s+ans)/100*100; ans=(300-s+ans)%100; } cout<<sum*1.2+ans; return 0; } -
1
C语言解法
#include <stdio.h> int main() { int a; double sum=0; double rest=0; int i=1; for(i=1;i<=12;i++){ scanf("%d",&a); int b=300+rest-a; if(b<0){ printf("-%d",i); goto out; }else{ int c=b-b%100; sum+=c; rest=300+rest-a-c;} } int money=sum*1.2+rest; printf("%d", money); out: return 0; } -
1
#include<bits/stdc++.h> using namespace std; int main(){ int h[12],q[12]={300,300,300,300,300,300,300,300,300,300,300,300},l=0; for(int i=0;i<12;i++) cin>>h[i]; for(int i=0;i<12;i++){ if(h[i]>q[i]) { cout<<(i+1)*-1; return 0; } q[i]-=h[i]; l+=q[i]/100*100; if(i!=11) q[i+1]+=q[i]%100; } q[11]-=q[11]/100*100; l+=l/5; q[11]+=l; cout<<q[11]; } -
1
import java.util.Scanner;
//用return比break合理,因为break只是跳出for,后面的代码还会执行 public class Main2 { public static void main(String[] args) { //每个月月初,妈妈给300元 // 每个月会花费输入的金额
//定义起始金额为0,存款为0,支出为0 int sum = 0; int savings = 0; int expenditure; Scanner sc = new Scanner(System.in); for (int i = 0; i < 12; i++) { //每月零花钱 sum += 300; //输入支出 expenditure = sc.nextInt(); //判断输入内容是否合理 if (expenditure < 0 || expenditure >= 350) { break; } //支出后剩余的钱数 sum -= expenditure; //如果剩余的钱数小于0,输出-1 if (sum < 0) { System.out.println(-(i+1)); break; } //存完钱后剩余的钱数和存款 while (sum >=100 ) { savings += 100; sum -= 100; } } int finalAmount = (int) (savings * 1.2 + sum); System.out.println(finalAmount); }}
-
1
如下
#include <iostream> using namespace std; const int m = 300; int main() { int h = 0, s = 0; // 定义变量h和s,分别表示小时和总金额 int a; // 定义变量a,用于存储输入的金额 for (int i = 1; i < 13; i++) { cin >> a; // 输入金额 h += m; // 每次循环累加300小时到h if (h < a) { cout << -i; // 如果h小于a,则输出负的i,并结束程序 return 0; } int left = h - a; // 计算剩余的金额 h = left % 100; // 将剩余的金额转换为小时 s += left - h; // 累加剩余的金额到s } cout << s * 1.2 + h; // 输出总金额,使用1.2作为兑换率 return 0; } -
1
#include<bits/stdc++.h> using namespace std; int main() { int budget, money = 0, interest = 0; for (int i = 1; i <= 12; i++) { cin >> budget; money += 300 - budget; if (money < 0) { cout << '-' << i; return 0; } while (money >= 100) { interest += 100; money -= 100; } } cout << money + interest * 1.2; return 0; } -
0
#include<stdio.h> int main() { int A[12]; int change=0; int storage=0; int final_change,month=0; for (int i=0;i<12;i++){ scanf("%d",&A[i]); if (change+300-A[i]>=0){ storage+=(change+300-A[i])/100; change=(change+300-A[i])%100; } else if (month==0)month=-i-1; } final_change=change+120*storage; if (month!=0) printf("%d",month); else printf("%d",final_change); return 0; } -
0
#include using namespace std; int main() { int a = 0, b = 0, t[13]; double sum = 0; t[0] = 0; for (int i = 1;i <= 12;i++) { cin >> a; t[i] = t[i - 1] + 300 - a; b = t[i] / 100; t[i] = t[i] % 100; sum += b; } for (int i = 1;i <= 12;i++) { if (t[i] < 0) { cout << -i << endl; return 0;//return 0;立即结束程序 }; } if (t[1] >= 0 && t[2] >= 0 && t[3] >= 0 && t[4] >= 0 && t[5] >= 0 && t[6] >= 0 && t[7] >= 0 && t[8] >= 0 && t[9] >= 0 && t[10] >= 0 && t[11] >= 0 && t[12] >= 0) { sum = sum * 100 * 1.2 + t[12]; cout << sum << endl; } return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int b=0; //定义b接受输入 int s=0; //定义妈妈手中存的钱 int sm=0; //定义最小月份 int p=0; //定义余额 int main(){ for(int i=1;i<=12;i++){ //循环接受12次的预算 cin>>b; p+=300; //计算拿到300元后的余额 if(p<b){ //判断余额是否足够 if(!sm){ //判断是否已经输出过余额,如果输出过则不为0 sm=i; //计算最小月份 cout<<-1*sm; //乘-1后输出 } } else{ s+=(p-b)-(p-b)%100; //计算储蓄数额并加在s上 p-=(p-b)-(p-b)%100+b; //从余额中扣去储蓄数额 } if(i==12&&!sm){ //判断是否已到年底,且中间没有出现过余额不足 cout<<p+s*1.2; //将余额加上返还的数额输出 } } return 0; } -
0
这个AC代码经过了我的多次思考,最后发现是文字游戏
#include <iostream> using namespace std; int has_mony=0, giv_mony_cnt=0; int main(){ for(int i=1;i<13;++i){ int now_this_ned,now_giv_mony; // Now, I gets new 300 mony!!! has_mony+=300; // But how many this month I need? cin>>now_this_ned; // Check how much should I give to mom. now_giv_mony=has_mony-=now_this_ned; // Yeah... My money is not enough this month. if(now_giv_mony<0) return (cout<<'-'<<i,0); // Ohhhh my god!!! I has enough money!!! // I need to give my mom some. if(now_giv_mony/=100){ now_giv_mony*=100; has_mony-=now_giv_mony; // Counting time! giv_mony_cnt+=now_giv_mony; } } // Wait a minute... // I gets 3 times wrong. // Which bug did I lose? // Emmm... /* return (cout<<giv_mony_cnt/5+has_mony,0); */ // Oh, Plus the 20% of it!!! // I thinks it's times 20% return (cout<<giv_mony_cnt*1.2+has_mony,0); }
- 1
信息
- ID
- 5147
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- 递交数
- 1134
- 已通过
- 480
- 上传者