//数值: 0,1,2,3,4,5,6,7,8,9 //分配: 6,2,1,0,0,0,1,0,0,0 #include <iostream> #define LEN 10 using namespace std; class NumberTB { private: int top[LEN]; int bottom[LEN]; bool success; public: NumberTB(); void getResult(); void setNextBottom(); int getFrequecy(int num); void print(); }; NumberTB::NumberTB() { //initialization success = false; for(int i=0; i<LEN; ++i) { top[i] = i; bottom[i] = -1; } } void NumberTB::getResult() { while(!success) setNextBottom(); } void NumberTB::setNextBottom() { bool flag = true; int frequency; for(int i=0; i<LEN; ++i) { frequency = getFrequecy(top[i]); if( bottom[i] != frequency) { bottom[i] = frequency; flag = false; } } success = flag; } int NumberTB::getFrequecy(int num) { int frequecy=0; for(int i=0; i<LEN; i++) if (bottom[i] == num) frequecy++; return frequecy; } void NumberTB::print() { for(int i=0; i<LEN; i++) cout << top[i] << " "; cout << endl; for(int i=0; i<LEN; i++) cout << bottom[i] << " "; cout << endl; } int main() { NumberTB numtb; numtb.getResult(); numtb.print(); system("PAUSE"); return 0; }