装箱问题
由于一时半会对java真的提不起兴趣,所以今天又回到了c++的算法:
这是以前pta上的一道题,下面的输入样例输出结果是:
2
1
实现代码:
int main()
{
int a1, a2, a3, a4, a5, a6;
int rest[4] = { 0,5,3,1 };
int _rest[4] = { 0,7,6,5 };
cin >> a1 >> a2 >> a3 >> a4 >> a5 >> a6;
int sum = 0;
sum = sum + a6 + a5 + a4;
sum += (a3+3) / 4;
int rest02 = a4 * 5 + rest[a3 % 4];
if (rest02 >= a2)
{
int rest01 = (rest02 - a2) * 4 + _rest[a3 % 4] + a5 * 11;
if (rest01 >= a1)
{
cout << sum << endl;
}
else
{
sum = sum + (a1 - rest01 + 35) / 36;
}
}
else if (rest02 < a2)
{
sum = sum + (a2 - rest02 + 8) / 9;
int rest01 = (9 - (a2 - rest02) % 9) * 4;
if (a1 <= rest01)
{
cout << sum << endl;
}
else
{
sum = sum + ((a1 - rest01) + 35) / 36;
cout << sum << endl;
}
}
system("pause");
return 0;
}
这道题自己已经做过好几遍了,每次再做都会有新的理解,这次就是用的新的思路,结果仍然正确。
浙公网安备 33010602011771号