1082 与7无关的数

来源:互联网 发布:网站源码打包下载 编辑:程序博客网 时间:2024/06/04 18:57

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1082
题意:找出小于等于n的与7无关的数的个数。与7无关的数:数字中不能含7,且不是7的倍数。
思路:按条件打表

#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<cmath>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,ox3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;const int INF = ( 2e9 ) + 2;const int maxn = 1e6+10;ll ans[maxn];void init(){    for(int i=1;i<=1e6+2;i++)    {        if(i%7==0)        ans[i]=ans[i-1];        else        {            int c=i,f=0;            while(c)            {                int t=c%10;                if(t==7)                {                    f=1;                    break;                }                c/=10;            }            if(f)            ans[i]=ans[i-1];            else ans[i]=ans[i-1]+1LL*i*i;        }    }}int main(){    init();    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        printf("%lld\n",ans[n]);    }}