Problem
Truth Table implementation: Write a function which takes integer as In put parameter (let's say n), print all True (T) , False (F) combinations n times. Here is the example:
for n = 1
Output :
T
F
for n = 2
Output :
T F
F T
For n = 3
Output :
T T T
T T F
T F T
T F F
F T T
F T F
F F T
F F F
Solution
#include <string>
#include <iostream>
using namespace std;
void PrintTable(int n, string s) {
if(n == 0) {
cout << s << endl;
return;
}
PrintTable(n-1, s + " T");
PrintTable(n-1, s + " F");
}
int main(int argc, char* argv[])
{
for(int i = 0; i < 6; ++i){
string str;
PrintTable(i, str);
cout << " ---------------------------- " << endl;
}
return 0;
}
Output
----------------------------
T
F
----------------------------
T T
T F
F T
F F
----------------------------
T T T
T T F
T F T
T F F
F T T
F T F
F F T
F F F
----------------------------
T T T T
T T T F
T T F T
T T F F
T F T T
T F T F
T F F T
T F F F
F T T T
F T T F
F T F T
F T F F
F F T T
F F T F
F F F T
F F F F
----------------------------
T T T T T
T T T T F
T T T F T
T T T F F
T T F T T
T T F T F
T T F F T
T T F F F
T F T T T
T F T T F
T F T F T
T F T F F
T F F T T
T F F T F
T F F F T
T F F F F
F T T T T
F T T T F
F T T F T
F T T F F
F T F T T
F T F T F
F T F F T
F T F F F
F F T T T
F F T T F
F F T F T
F F T F F
F F F T T
F F F T F
F F F F T
F F F F F
----------------------------
Press any key to continue . . .