All pastes #2049888 Raw Edit

Stuff

public text v1 · immutable
#2049888 ·published 2011-04-23 20:26 UTC
rendered paste body
// multicombinations.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

void print_card(int num){
	switch(num){
	case  0: cout << "A"; break;
	case  1: cout << "2"; break;
	case  2: cout << "3"; break;
	case  3: cout << "4"; break;
	case  4: cout << "5"; break;
	case  5: cout << "6"; break;
	case  6: cout << "7"; break;
	case  7: cout << "8"; break;
	case  8: cout << "9"; break;
	case  9: cout << "T"; break;
	case 10: cout << "J"; break;
	case 11: cout << "Q"; break;
	case 12: cout << "K"; break;
	}
}

int m[13] = {3,2,4,3,4,4,4,4,4,4,4,4,4};
int q[13];
int j, x, t, i, k;
int count = 0;

int _tmain(int argc, _TCHAR* argv[])
{
	t = 4;

Q1: 
	for(j = 0; j < 13; j++) q[j] = 0;
	x = t;

Q2:
	j = 0;
	while(x > m[j]){
		q[j] = m[j];
		x -= m[j];
		j++;
	}
	q[j] = x;

Q3:
	count++;
	for(i = 0; i < 12; i++) for(k = 0; k < q[i]; k++) print_card(i);
	//for(i = 0; i < 12; i++) cout << q[i] << " ";
	cout << endl;

Q4:
	if(j == 0){
		x = q[0] - 1;
		j = 1;
	} else 
	if(q[0] == 0){
		x = q[j] - 1;
		q[j] = 0;
		j++;
	} else
		goto Q7;

Q5:
	if(j > 12){
		cout << count << endl;
		system("pause");
		return 0;
	} else
	if(q[j] == m[j]){
		x += m[j];
		q[j] = 0;
		j++;
		goto Q5;
	}

Q6: 
	q[j] += 1;
	if(x == 0){
		q[0] = 0;
		goto Q3;
	} else
		goto Q2;

Q7:
	while(q[j] == m[j]){
		j++;
		if(j > 12) goto Q5;
	}
	q[j] += 1;
	j -= 1;
	q[j] -= 1;
	if(q[0] == 0) j = 1;
	goto Q3;

}