HDU杭电acm2089-不要62
2017-02-07 14:17
162 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2089
/*********************************************************************************
这个题第一思路就是对区间内的每一个数字进行检测,但是遇到了一个问题,超时。
那么就不能在每次输入n,m后进行寻找吉利数,而是在输入数据之前就用数组记录下所有数据。
/***********************************************************************************
代码如下:
/****************
#include<stdio.h>
int a[1000005];//存储从1到i的吉利数个数
int f(int i)
{
while(i)
{
if(i%10==4||i%100==62)
return 1;
i=i/10;
}
return 0;
}
void r()
{
a[0]=0;
for(int i=1;i<1000005;i++)
{
if(f(i))//含有4或62
a[i]=a[i-1];
else
a[i]=a[i-1]+1;
}
}
int main()
{
int n,m;
r();
while(scanf("%d%d",&n,&m),n!=0||m!=0)
{
printf("%d\n",a[m]-a[n-1]);
}
return 0;
}
/*********************************************************************************
这个题第一思路就是对区间内的每一个数字进行检测,但是遇到了一个问题,超时。
那么就不能在每次输入n,m后进行寻找吉利数,而是在输入数据之前就用数组记录下所有数据。
/***********************************************************************************
代码如下:
/****************
#include<stdio.h>
int a[1000005];//存储从1到i的吉利数个数
int f(int i)
{
while(i)
{
if(i%10==4||i%100==62)
return 1;
i=i/10;
}
return 0;
}
void r()
{
a[0]=0;
for(int i=1;i<1000005;i++)
{
if(f(i))//含有4或62
a[i]=a[i-1];
else
a[i]=a[i-1]+1;
}
}
int main()
{
int n,m;
r();
while(scanf("%d%d",&n,&m),n!=0||m!=0)
{
printf("%d\n",a[m]-a[n-1]);
}
return 0;
}
相关文章推荐
- 杭电acm2089 hdu-acm-2089不要62解题报告
- 杭电 hdu 2089 不要62【数位dp】【入门】
- hdu 2089 不要62(数位dp)
- HDU-OJ-2089 A 不要62
- HDU 2089 不要62——数位dp
- hdu 2089 不要62 数位DP
- hdu 2089 不要62--数位dp入门
- HDU 2089 不要62(数位DP入门+模板)
- HDU 2089 不要62(数位DP·记忆化搜索)
- HDU 2089 不要62
- 【重新入门数位Dp】Hdu 2089 不要62【记忆化搜索写法】数位Dp
- hdu 2089 不要62(数位dp)
- [HDU 2089] 不要62 数位DP(记忆化搜索)
- hdu 2089 不要62 数位dp
- HDU 2089 不要62
- 【hdu-2089】不要62(数位DP入门)
- HDU 2089 不要62(数位DP)
- hdu 2089 不要62(入门数位dp)
- hdu 2089——不要62
- 不要62 HDU 2089