UVA - 10334 Ray Through Glasses

题意:在n次的反射后一共有几条线,这里解释的很好点击打开链接


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const int MAXN = 1005;

int n,f[MAXN][MAXN];

void init(){
   f[1][0] = 1;
   f[2][0] = 1;
   int a,c = 0;
   for (int i = 3; i <= MAXN; i++)
       for (int j = 0; j < 250; j++){
            a = f[i-1][j] + f[i-2][j] + c;
            c = a / 10;
            f[i][j] = a % 10;
       }
}

int main(){
    init();
    while (scanf("%d",&n) != EOF){
        n += 2;
        int cnt = 250;
        while (f[n][cnt] == 0)
            cnt--;
        for (int i = cnt; i >= 0; i--)
            printf("%d",f[n][i]);
        printf("\n");
    }    
    return 0;
}



你可能感兴趣的:(UVA - 10334 Ray Through Glasses)