#include #include using namespace std; map,int> freq; int choose(int n, int k){ //cout << "computing choose(" << n << "," << k << ")" << endl; freq[make_pair(n,k)]++; if (k==n) return 1; if (k==1) return n; return choose(n-1,k)+choose(n-1,k-1); } int main(int argc, char** argv){ if (argc!=3){ cout << "parameters: n and k" << endl; return 1; } cout <<"result:" << choose(atoi(argv[1]), atoi(argv[2])) << endl; cout << "counts: " << endl; for (map,int>::iterator itr=freq.begin(); itr!=freq.end(); itr++){ pair key = itr->first; int value = itr->second; cout << "(" << key.first << "," << key.second << "): " << value << endl; } return 0; }