zoj_1168

 刚开了新博,兴奋不已哦。。。又过了一道水题。可惜今天的任务还木有完成~~~~(>_<)~~~~ 继续加油!!

/*
zoj_1168    模拟
模拟递归,木有难度的一题。。照着题意写就好了。
*/
#include <iostream>
#include <cstdio>
using namespace std;
int w[21][21][21];

int main()
{
    int i,j,k;
    for( j=0;j<=20;j++ )
    {
        for( k=0;k<=20;k++ )
        {
            w[0][j][k]=1;
            w[j][k][0]=1;
            w[j][0][k]=1;
        }
    }
    for( i=1;i<=20;i++ )
    {
        for( j=1;j<=20;j++ )
        {
            for( k=1;k<=20;k++ )
            {
                if( i<j && j<k )
                    w[i][j][k]=w[i][j][k-1]+w[i][j-1][k-1]-w[i][j-1][k];
                else
                    w[i][j][k]=w[i-1][j][k]+w[i-1][j-1][k]+w[i-1][j][k-1]-w[i-1][j-1][k-1];
            }
        }
    }
    while( scanf( "%d%d%d",&i,&j,&k ) && !( i==-1 && j==-1 && k==-1 ) )
    {
        if( i<=0 || j<=0 || k<=0 )
            printf( "w(%d, %d, %d) = 1\n",i,j,k );
        else if( i>20 || j>20 || k>20 )
            printf( "w(%d, %d, %d) = %d\n",i,j,k,w[20][20][20] );
        else    printf( "w(%d, %d, %d) = %d\n",i,j,k,w[i][j][k] );
    }
    return 0;
}


 

你可能感兴趣的:(zoj_1168)