游客 Signup | Login
中文 | En

2096 - 数字计数

大家都知道南方人说普通话不标准,有些同学不会读4,而有些同学不会读7。于是想到了这样一个问题,虾米读自然数的时候,每次遇到含有4和7的数则跳过不读,那么当他读到数字N的时候,是他读的第几个数字呢?

Input

第一行输入一个数字Case,表示一共有多少组测试数据。

接下来Case个测试数据块。

每个测试数据块一行,一个数字N。

Case<=100000,1<=N<=2*10^9。

Output

每个测试数据输出一行,表示读的第几个数字

Examples

Input

6
1
2
3
5
6
8

Output

1
2
3
4
5
6

Hint

Solution C++

#include<cstdio>
#include<cstring>
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        char s[20];
        int num;
        scanf("%d",&num);
        sprintf(s,"%d",num);
        int len=strlen(s);
        int ans=0;
        int mov=1;
        for(int i=1;i<len;mov*=8,i++);
        for(int i=0;i<len-1;i++)
        {
            if(s[i]>'6')
            ans+=(s[i]-'2')*mov;
            else if(s[i]>'3')
            ans+=(s[i]-'1')*mov;
            else
            ans+=(s[i]-'0')*mov;
            mov/=8;
        }
        if(s[len-1]>'6')ans+=s[len-1]-'2';
        else if(s[len-1]>'3')ans+=s[len-1]-'1';
        else ans+=s[len-1]-'0';
        printf("%d\n",ans);
    }
    return 0;
}

Hint

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