**作者的个人gitee**
作者的算法讲解主页▶️
每日一言:“泪眼问花花不语,乱红飞过秋千去🌸🌸”
题目
二.解题策略
本题比较简单,我的思路是写三个函数分别计算黄金白银铜一次新产值,通过k次循环即可获取最新产值。
三.代码演示
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
typedef long long ll;
using namespace std;
//分别计算每种金属的新产值
ll gold(ll a, ll b, ll c)
{
return (b + c) / 2;
}
ll silver(ll a, ll b, ll c)
{
return (a + c) / 2;
}
ll copper(ll a, ll b, ll c)
{
return (b + a) / 2;
}
void solve()
{
int T, K;
scanf("%d", &T);
ll A, B, C;
for (int i = 0; i < T; i++)
{
ll A1 = 0, B1 = 0, C1 = 0;
scanf("%lld%lld%lld%d", &A, &B, &C, &K);
for (int j = 0; j < K; j++)//计算k次
{
A1 = gold(A, B, C);
B1 = silver (A, B, C);
C1 = copper(A, B, C);
}
cout << A1 << " " << B1 << " " << C1;
}
}
int main()
{
solve();
return 0;
}
输出如下
非标准答案,如有错误,恳请指正。