22 printf(
"\nTMath::Permute simple test\n");
23 printf(
"==========================\n");
28 for(i=0; i<4; i++)
a[i]=i;
31 for(
Int_t i=0;i<4;printf(
"%c",
static_cast<char>(aa+
a[i++])));
35 printf(
"Found %d permutations = 4!\n",icount);
41 printf(
"\nTMath::Permute simple test with repetition\n");
42 printf(
"==========================================\n");
47 for(i=0; i<6; i++)
a[i]=(i+2)/2;
50 for(
Int_t i=0;i<5;printf(
"%c",
static_cast<char>(aa+
a[i++])));
54 printf(
"Found %d permutations = 5!/(2! 2!)\n",icount);
66 Int_t nine, three, neuf, trois;
68 printf(
"\nTMath::Permute fancy test\n");
69 printf(
"=========================\n");
70 printf(
"This is a program to calculate the solution to the following problem\n");
71 printf(
"Find the equivalence between letters and numbers so that\n\n");
72 printf(
" NINE*THREE = NEUF*TROIS\n\n");
73 for(
Int_t ii=0; ii<10; ii++)
a[ii]=ii;
75 nine=((
n*10+i)*10+
n)*10+
e;
76 neuf=((
n*10+
e)*10+u)*10+
f;
77 three=(((t*10+
h)*10+
r)*10+
e)*10+
e;
78 trois=(((t*10+
r)*10+o)*10+i)*10+s;
79 if(nine*three==neuf*trois) {
80 printf(
"Solution found!\n\n");
81 printf(
"T=%d N=%d E=%d S=%d F=%d H=%d R=%d I=%d O=%d U=%d\n",t,
n,
e,s,
f,
h,
r,i,o,u);
82 printf(
"NINE=%d THREE=%d NEUF=%d TROIS=%d\n",nine,three,neuf,trois);
83 printf(
"NINE*THREE = NEUF*TROIS = %d\n",neuf*trois);
87 printf(
"No solutions found -- something is wrong here!\n");
int Int_t
Signed integer 4 bytes (int).
Bool_t Permute(Int_t n, Int_t *a)