Fibonacci memoization
2014-06-25 21:54:45

long a[100];

//fibonacci(i)

long fibonacci(int i){

    if(a[i]!=-1){

        return a[i];

    }

    //a[i] = fibonacci(i-2) + fibonacci(i-1);

    return fibonacci(i-2) + fibonacci(i-1);

//    return a[i];

}

int main(int argc, char** argv){

    //if(argc!=2){

    //    printf("!!USAGE: fibo limit

");

    //    return 1;

    //}

printf("%d

",sizeof(int));

printf("%d

",sizeof(long long));

    

a[0]=1;

    a[1]=1;

    

for(int i=2;i<100;i++){

        a[i]=-1;

    }

    int limit = 100;

    for(int i=0;i<limit;i++){

        if(i>0 && i%10==0){

            printf("

");

        }

        printf("%015ld ",fibonacci(i));

    }

    

printf("

");

}

▼ more
Boggle
2014-06-25 21:50:01

#define N 5

char boggle[N][N+1]={

    {"URLPM"},

    {"XPRET"},

    {"GIAET"},

    {"XTNZY"},

    {"XOQRS"}

};

int wordN = 6;

bool hasWord(int x, int y, int depth, const char* word){

    if(x<0 || x>=N || y <0 || y >= N){

        return false;

    }

    

    bool hasWordValue = boggle[x][y]==word[depth];

    if(!hasWordValue) return hasWordValue;

    if(depth==wordN-1) return hasWordValue;

    if(hasWord(x+1,y+1,depth+1,word)){return true;}

    if(hasWord(x+1,y-1,depth+1,word)){return true;}

    if(hasWord(x-1,y-1,depth+1,word)){return true;}

    if(hasWord(x-1,y+1,depth+1,word)){return true;}

    if(hasWord(x+1,y,depth+1,word)){return true;}

    if(hasWord(x-1,y,depth+1,word)){return true;}

    if(hasWord(x,y+1,depth+1,word)){return true;}

    if(hasWord(x,y-1,depth+1,word)){return true;}

    return false;

}

int main(){

    char word[10]="PRETTY";

    if(hasWord(1,1,0,word)){

        printf("%s exists

",word);

    }

    return 0;

}

▼ more
와아 곰이다
2014-06-20 21:12:28

▼ more
편집 거리
2014-06-17 22:33:11

치환 : shot -> spot

삽입 : ago -> agog

삭제 : hour -> our

▼ more