西西河

主题:【原创】将24进行到底 -- 泰让

共:💬28 🌺15
全看分页树展 · 主题 跟帖
家园 print函数

1 3 5 4 有12个结果,4 4 7 7 有4个结果, 1 5 5 5 有6个结果。

void print(vector<double> A,vector<int> op,int i)

{

if (i==4||i==5||i==6||i==7) { swap(A[0],A[1]); i=i-4; }

switch (i)

{

case 0 : cout<<"(("<<A[0]; print_op(op[0]); cout<<A[1]<<')';

print_op(op[1]); cout<<A[2]<<')';

print_op(op[2]); cout<<A[3]; break;

// ((A#B)#C)#D

case 1 : cout<<A[3]; print_op(op[2]);

cout<<"(("<<A[0]; print_op(op[0]); cout<<A[1]<<')';

print_op(op[1]); cout<<A[2]<<')'; break;

// D#((A#B)#C)

case 2 : cout<<'('<<A[2]; print_op(op[1]);

cout<<'('<<A[0]; print_op(op[0]); cout<<A[1]<<"))";

print_op(op[2]); cout<<A[3]; break;

// (C#(A#B))#D

case 3 : cout<<A[3]; print_op(op[2]);

cout<<'('<<A[2]; print_op(op[1]);

cout<<'('<<A[0]; print_op(op[0]); cout<<A[1]<<"))"; break;

// D#(C#(A#B))

}

}

void PRINT(vector<double> A,vector<int> op,int i)

{

if (i==4||i==5||i==6||i==7) swap(A[0],A[1]);

if (i==2||i==3||i==6||i==7) swap(A[2],A[3]);

if (i%2==0)

{

cout<<'('<<A[0]; print_op(op[0]); cout<<A[1]<<')';

print_op(op[2]);

cout<<'('<<A[2]; print_op(op[1]); cout<<A[3]<<')';

// (A#B)#(C#D)

}

else

{

cout<<'('<<A[2]; print_op(op[1]); cout<<A[3]<<')';

print_op(op[2]);

cout<<'('<<A[0]; print_op(op[0]); cout<<A[1]<<')';

// (C#D)#(A#B)

}

}

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河