题意:
给你一个数 n n n,能否用若干个3、5、7的和组成。
解题思路:
考虑3、5、7取模3的余数。
如果
n
%
3
=
0
n\%3=0
n%3=0,那么只要用
n
/
3
n/3
n/3个
3
3
3来组成。
如果
n
%
3
=
1
n\%3=1
n%3=1,那么一定要用一个
7
7
7,然后少用两个
3
3
3就好了,特判
n
<
7
n<7
n<7。
如果
n
%
3
=
2
n\%3=2
n%3=2,那么一定要用一个
5
5
5,然后少用一个
3
3
3就好了,特判
n
<
5
n<5
n<5。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
const int mod = 1e9+7;
int main(){
int t;
cin>>t;
while(t--)
{
int x;
cin>>x;
int a=x/3;
int b=x%3;
if(b==0)
cout<<a<<" 0 0"<<endl;
else
{
if(b==1)
{
if(x<7)
cout<<-1<<endl;
else
cout<<a-2<<" 0 1"<<endl;
}
else
{
if(x<5)
cout<<-1<<endl;
else
cout<<a-1<<" 1 0"<<endl;
}
}
}
return 0;
}