P1089 津津的储蓄计划
https://www.luogu.org/problemnew/show/P1089
第一次写的代码:
#include<iostream>
using namespace std;
int main()
{
int budget[12];
int balance[12];
int result = 0;//不够用的月份
int save = 0;//储蓄
for (int i = 0; i < 12; i++)
{
cin >> budget[i];
}
balance[0] = (300 - budget[0]) % 100;
if (balance[0] < 0)
result = 1;
else
{
save = (300 - budget[0]) / 100;
for (int i = 1; i < 12; i++)
{
balance[i] = (balance[i - 1] + 300 - budget[i]) % 100;
if (balance[i] < 0)
{
balance[i] = 0;
result = i + 1;
break;
}
save = save + (balance[i - 1] + 300 - budget[i]) / 100;
}
}
if (result != 0)
cout << -result << endl;
else
cout << balance[11] + save * 120 << endl;
return 0;
}
修改后的代码简洁了很多:
#include<iostream>
using namespace std;
int main()
{
int budget[12];
int save = 0, money = 0;
for (int i = 0; i < 12; i++)
{
cin >> budget[i];
}
for (int i = 0; i < 12; i++)
{
save = (money + 300 - budget[i]) / 100 + save;
money = (money + 300 - budget[i]) % 100;
if (money < 0)
{
cout << -(i + 1) << endl;
return 0;
}
}
cout << money + 120 * save;
return 0;
}
编程解决问题是注重结果的,过程不重要,甚至越简单越省时越好。