#include <math.h> #include <iostream.h> int w(int a,int b,int c) { if(a<=0 || b<=0 || c<=0) return 1; else if(a>20 || b>20 || c>20) return w(20,20,20); else if(a==b && c==b) return (int)pow(2,a); else if((a<=b && a<=c) || (a<=c && b<=c) || (b>=a && b>=c)) return (int)pow(2,a); else return w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) ; } int main() { int a,b,c; while(cin>>a>>b>>c) { if(a==-1 && b==-1 && c==-1) return 0; cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<w(a,b,c)<<endl; } }

评论