首页 > 代码库 > P1590 失踪的7

P1590 失踪的7

题目描述

远古的Pascal人也使用阿拉伯数字来进行计数,但是他们又不喜欢使用7,因为他们认为7是一个不吉祥的数字,所以Pascal数字8其实表示的是自然数中的7,18表示的是自然数中的16。下面计算一下,在正整数n范围以内包含有多少个Pascal数字。

输入输出格式

输入格式:

 

第一行为正整数t,接下来t行,每行一个正整数n(≤2^32-1)。

输入的是Pascal数字

 

输出格式:

 

对于每个正整数n,输出n以内的Pascal数的个数。

 

输入输出样例

输入样例#1:
2
10
20
输出样例#1:
9
18

#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long 
long  long t,n,yu,ans;
bool check(long long x)
{
    while(x)
    {
        yu=x%10;
        if(yu==7)    return 1;
        x=(x-yu)/10;
    }
    return 0;
}
int main()
{
    scanf("%lld",&t);
    for(LL i=1;i<=t;i++)
    {
        scanf("%lld",&n);ans=n;
        while(n)
        {
            if(check(n))    ans--;
            n--;
        }
        printf("%lld\n",ans);
    }
    return 0;
} 

 

P1590 失踪的7