链接:
https://odzkskevi.qnssl.com/76ee6a37a5e7b6e0a1da0f46372ab4da?v=1537258353
题意:
等给出你能用的棍棒数,让你拼数,求每位数之和最大使多少。
思路:
7的性价比是最高的,所以尽量先摆7,先对三取余,根据余数多少调整剩余的数
比如,如果余1,那么就将其中三个棍棒和一凑成4;如果余2,剩余的两个凑成1就行;余零,刚好全是7
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
freopen("auxiliary.in","r",stdin);
freopen("auxiliary.out","w",stdout);
int n;
scanf("%d",&n);
if(n==2){
printf("1\n");
return 0;
}
int t=n%3;
long long ans=0;
if(t==1){
ans=(long long)((n/3-1)*7+4);
}
else if(t==0) ans=(long long)((n/3)*7);
else ans=(long long)((n/3)*7+1);
printf("%lld\n",ans);
return 0;
}