5 条题解
-
2
根据题意模拟即可。
由于题目限定死了月底津津一定会存钱,因此就很简单了。考虑用一个变量 表示在妈妈那里存了多少钱, 表示手上剩余多少钱。那么答案就是 。
对于不行的情况,即为剩下的钱加上 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; }
-
0
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); }
}
-
0
如下
#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; }
-
0
#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; }
- 1
信息
- ID
- 5147
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- 递交数
- 705
- 已通过
- 314
- 上传者