暴力打表之hdu 2089
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089
有两种方法:
1.数位DP算法
2.暴力打表——真是个好法子!!!
接下来是注意点:
1.一般这种数组中的一个数减去一个数组的另一个数,sum[i]-sum[j],这时候就要注意是sum[i]-sum[j]还是sum[i]-sum[j-1]
2.打表就不要进行多余的循环和语句
题目代码:

#include<iostream> using namespace std; int sum[1000003]={0}; int solve(int n) { int pre=0,now=0; while(n>0) { now=n%10; if(now==4) return 0; if(now==6&&pre==2) return 0; n=n/10; pre=now; } return 1; } int main() { int n,m; for(int i=1;i<=1000000;i++) { sum[i]=sum[i-1]; if(solve(i)) sum[i]++; } while(cin>>n>>m) { if(n==0&&m==0) break; cout<<sum[m]-sum[n-1]<<endl; } }