游客 Signup | Login
中文 | En

2009 - 幸运数字

幸运数字的定义为尾数为4或7的正整数。给定一个数字,问这个数字能表示成最少几个幸运数字之和,如果不能表示,输出-1。

例如21=14+7,所以输出2。

Input

一个数n,n<1,000,000,000

Output

每个测试数据输出一个数,表示n是最少几个幸运数字之和。

Examples

Input

21
3

Output

2
-1

Solution C++

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[100];
int main()
{
    while(scanf("%s",a)!=EOF)
    {
        int len=strlen(a);
        if(a[0]=='-')
            printf("-1\n");
       else if(a[len-1]=='1')
        {
            if(len>1) printf("2\n");
            else printf("-1\n");
        }
        else if(a[len-1]=='4'||a[len-1]=='7')
            printf("1\n");
        else if(a[len-1]=='8')
            printf("2\n");
        else if(a[len-1]=='5'||a[len-1]=='2')
        {
            if(len>1) printf("3\n");
            else printf("-1\n");
        }

        else if(a[len-1]=='6'||a[len-1]=='9')
        {
            if(len>1) printf("4\n");
            else printf("-1\n");
        }
        else if(a[len-1]=='3')
        {
            if(len==2&&a[0]>='2')
                printf("5\n");
            else if(len>2)
                printf("5\n");
            else printf("-1\n");
        }
        else if(a[len-1]=='0')
        {
            if(len==2&&a[0]>='2')
                printf("5\n");
            else if(len>2)
                printf("5\n");
            else printf("-1\n");
        }
    }
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题