HDU-2089-不要62

简介: HDU-2089-不要62
#include<stdio.h>
#define maxn 1000010
int f[maxn];
int weishu(int a)
{
  int b=1;
  while(1)
  {
    if(a/10 == 0) 
      break;
    else
    {
      a/=10;
      b++;
    }
  }
  return b;
} //此函数用于输出参数是几位 记录位数是为了下面方便标记不吉利的数
int fun(int x,int n)   //此处n是位数  x是要判断的数
{
  int flag=0;
  for(; n>0; n--)
  {
     if(x%10==4||x%100==62)
     {
        flag=1;
        break;
     }
     else
     x/=10;
    }
    return flag;
} //此函数用于将所有含有4或者62 的数字标记为 1
int main()
{
  int n,m,i,j,wei;
  for(i=4; i<maxn; i++)
  {
    wei=weishu(i);
    f[i]=fun(i,wei);
  }
  // 记录范围内不要的数 这里是打表用数组储存不要的数 避免数据过多超时
  while(~scanf("%d %d",&n,&m)&&n||m)
  {
    int ans=0;
    for(j=n; j<=m; j++)
       if(f[j])
         ans++;
    printf("%d\n",m-n-ans+1);
  } 
  return 0;
}

题目总结:

1、多数据重复处理问题 要记得使用自定义函数方便处理数据

2、学习用数据记录储存数据

3、此题考虑位数是关键

目录
相关文章
poj 1455
Description n participants of > sit around the table. Each minute one pair of neighbors can change their places.
618 0
|
测试技术
poj-1218 THE DRUNK JAILER 喝醉的狱卒
自己去看看原题; 题目大意: 就是一个狱卒喝醉了,他第一趟吧所有的监狱都带开,第二趟把能把二整除的监狱关闭,第三趟操作能把三整除的监狱; 求最后能逃跑的罪犯数 输入第一个数是代表 测试数据组数 每个数据代表狱卒来回的次数 当作开关问题即可 #include using names...
1002 0
poj-1006-Biorhythms
Description 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。
617 0
|
并行计算 网络架构
poj-1005-l tanink i need a houseboat
Description Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned ...
982 0