FOJ1682
題意:給你n,讓你求1到n中有多少個數字,它的每位不能為3和6.
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> using namespace std;#define ll long longll h[30]; char s[30]; int len,num[30]; ll dfs(int k,int jg){if(k==-1)return 1;if(h[k]!=-1&&!jg)return h[k];int tmp=jg?num[k]:9;ll tans=0;for(int i=0;i<=tmp;i++){if(i==3||i==6)continue;tans+=dfs(k-1,jg&&(i==tmp));}if(!jg)h[k]=tans;return tans; } int main(){int i,j;memset(h,-1,sizeof(h));while(scanf("%s",s)!=EOF){int len=strlen(s);for(i=len-1,j=0;i>=0;i--,j++)num[j]=s[i]-'0';ll ans=dfs(len-1,1);printf("%lld\n",ans-1);}return 0; }總結
- 上一篇: Xilinx ZYNQ Ultrasca
- 下一篇: 华为接入层交换机基础配置