SUU TAM
Petya yêu thích các số may mắn. Ta biết rằng một số là số may mắn nếu biểu diễn thập phân của nó chỉ chứa các chữ số may mắn là 4 và 7.
Ví dụ, các số 47, 744, 4 là số may mắn và 5, 17, 467 không phải.
Petya muốn tìm số may mắn bé nhất có tổng các chữ số bằng n. Hãy giúp anh ấy.
Input
Một dòng chứa số nguyên n (1 ≤ n ≤ 106) — tổng các chữ số của số may mắn cần tìm.
Output
In ra trên 1 dòng số may mắn bé nhất, mà tổng các chữ số bằng n. Nếu không tồn tại số thỏa mãn, in ra -1.
Ví dụ:
Input
11
Output
47
Input
10
Output
-1
#include<iostream>
using namespace std;
void test( long n)
{
long x,y; // day do co x so 7 va y so 4
long sum =0; // sum = 7x + 4y;
x = n/7;
y = n/4;
for( int i = x; i>=0;i--)
for( int j =0;j<= y;j++)
{
sum = 7*i + 4*j;
if( sum < n)continue;
else
{
if( sum > n)break;
else
{
while( j>0){cout<< 4;j--;}
while( i>0){cout<<7;i--;}
return ;
}
}
}
cout<< -1;
}
int main()
{
long n;
cin >> n;
test(n);
//system("pause");
return 0;
}
0 comments:
Post a Comment