hdu 1331 Function Run Fun

就是将所给的公式写出来就ok啦

 

 

#include <iostream>

using namespace std;

int f[25][25][25], a, b, c;

int w ( int a, int b, int c ) {
    if ( a <= 0 || b <= 0 || c <= 0 ) 
         f[a][b][c] = 1;
    else if ( a < b && b < c ) 
         f[a][b][c] = f[a][b][c - 1] + f[a][b - 1][c - 1] - f[a][b - 1][c];
    else {
         f[a][b][c] = f[a - 1][b][c] + f[a - 1][b - 1][c] + f[a - 1][b][c - 1] -f[a - 1][b - 1][c - 1];
    }
}    

int main ( ) {
    for ( int i = 0; i < 21; ++i )   
         for ( int j = 0; j < 21; ++j ) 
             for ( int k = 0; k < 21; ++k ) 
                 w ( i, j, k );
    while ( cin >> a >> b >> c ) {
          if ( a == -1 && b == -1 && c == -1 ) break;
          cout << "w(" << a << ", " << b << ", " << c << ") = ";
          if ( a <= 0 || b <= 0 || c <= 0 ) {
               cout << "1" << endl;
               continue;
          }
          else if ( a > 20 || b > 20 || c > 20 ) {
               cout << f[20][20][20] << endl;
               continue;
          }
          cout << f[a][b][c] << endl;
    }
}
          


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值