bnu 4359 无爱编号(规律)

http://www.bnuoj.com/bnuoj/problem_show.php?pid=4359

【题意】:输入N,表示几位数,0-这个N位数,有多少个满足条件的号码,不满足的情况为出现4,13的情况

【题解】:

  写暴力代码找规律

   1    9

   2    80

 3    711

   4    6319

得出规律    a[i] = a[i-1]*9 - a[i-2]

另外注意处理减法出现负数的情况

【code】:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 #include <algorithm>
 5 
 6 #define MOD 100000000
 7 #define N 1000000
 8 using namespace std;
 9 
10 int arr[N+10];
11 
12 int main()
13 {
14     int i,j;
15     arr[0]=1;
16     arr[1]=9;
17     for(i=2;i<=N;i++)
18     {
19         arr[i]=(arr[i-1]*9-arr[i-2])%MOD;
20         arr[i]=(arr[i]+MOD)%MOD; //防止出现负数
21     }
22     int t;
23     scanf("%d",&t);
24     while(t--)
25     {
26         int n;
27         scanf("%d",&n);
28         printf("%08d\n",arr[n]);
29     }
30     return 0;
31 }

 

posted @ 2013-09-17 20:38  crazy_apple  阅读(245)  评论(0编辑  收藏  举报