Go: package main

import (
	"fmt"
	"strconv"
)

func main() {
	for _, leftValue := range MultiplicationTableNum(9) {
		for _, rightValue := range MultiplicationTableNum(9) {
			strLeftVal, strRightVal, strMulti := strconv.Itoa(leftValue), strconv.Itoa(rightValue), strconv.Itoa(Multiplication(leftValue, rightValue))
			fmt.Println(strLeftVal + "x" + strRightVal + "=" + strMulti)
		}
	}
}

func MultiplicationTableNum(num int) []int {
	multiNum := []int{}
	for i := 1; i <= num; i++ {
		multiNum = append(multiNum, i)
	}
	return multiNum
}

func Multiplication(x, y int) int {
	return x * y
}

C++: /*
 * F.cpp
 *
 *  Created on: Oct 5, 2012
 *      Author: carber
 */

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>

using namespace std;

bool dp[1010][1010];
int fasf[1010][1010];
int slow[1010][1010];

int main(void)
{
    memset(dp, false, sizeof(dp));
    int n = 1000;
    memset(fasf, -1, sizeof(fasf));
    memset(slow, - 1, sizeof(slow));
    fasf[0][0] = 0;
    for(int i = 1; i <= n; ++i)
    {
        dp[0][i] = dp[i][0] = true;
        slow[0][i] = slow[i][0] = 1;
    }
    for(int i = 0; i <= n; ++i)
    {
        for(int j = 0; j <= n; ++j)
        {
            if(i >= j)
            {
                int te = i - j;
                if(fasf[te][0] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[te][0] + 1)
                        fasf[i][j] = fasf[te][0] + 1;
                }
                if(fasf[i][0] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[i][0] + 1)
                        fasf[i][j] = fasf[i][0] + 1;
                }
                if(fasf[0][j] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[0][j] + 1)
                        fasf[i][j] = fasf[0][j] + 1;
                }
                if(dp[i][j] == true)
                {
                    slow[te][0] = max(slow[te][0], fasf[i][j]);
                    slow[i][0] = max(slow[i][0], fasf[i][j]);
                    slow[0][j] = max(slow[0][j], fasf[i][j]);
                }
                else
                {
                    int th = max(slow[0][j], slow[i][0]);
                    th += 1;
                    if(slow[te][0] != -1 && slow[te][0] + 1 > th)
                        th = slow[te][0] + 1;
                    if(th < fasf[i][0])
                        fasf[i][0] = th;
                    if(th < fasf[0][j])
                        fasf[0][j] = th;
                    if(th < fasf[te][0])
                        fasf[te][0] = th;
                }
            }
            else
            {
                int te = j - i;
                if(fasf[0][te] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[0][te])
                        fasf[i][j] = fasf[0][te];
                }
                if(fasf[i][0] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[i][0])
                        fasf[i][j] = fasf[i][0];
                }
                if(fasf[0][j] != -1)
                {
                    dp[i][j] = true;
                    if(fasf[i][j] == -1 || fasf[i][j] > fasf[0][j])
                        fasf[i][j] = fasf[0][j];
                }
                if(dp[i][j] == true)
                {
                    slow[0][te] = max(slow[0][te], fasf[i][j]);
                    slow[i][0] = max(slow[i][0], fasf[i][j]);
                    slow[0][j] = max(slow[0][j], fasf[i][j]);
                }
                else
                {
                    int th = max(slow[0][j], slow[i][0]);
                    th += 1;
                    if(slow[0][te] != -1 && slow[0][te] + 1 > th)
                        th = slow[0][te] + 1;
                    if(th < fasf[i][0])
                        fasf[i][0] = th;
                    if(th < fasf[0][j])
                        fasf[0][j] = th;
                    if(th < fasf[0][te])
                        fasf[0][te] = th;
                }
            }
        }
    }
    int t;
    scanf("%d", &t);
    while(t--)
    {
        int n, m, k;
        scanf("%d %d %d", &n, &m, &k);
        if(dp[n][m])
        {
            printf("Sita %d\n", fasf[n][m] + k * 2);
        }
        else
            printf("Gita %d\n", slow[n][m]);
    }
    return 0;
}

C++: 
    for(int i=1;i<10;i++){
       for(int j=1;j<10;j++){
           printf("%d+%d=%d", i, j, i*j);
       }
    }

C++: #include <iostream>
using namespace std;

int main() {
  for(int i=1; i<10; i++) {
    for(int j=1; j<10; j++) {
      cout << i << "x" << j << "=" << i*j << endl;
    }
  }

  return 0;
}

C++: #include <iostream>
using name space std;

int main(){
  for(int i=1; i<=9; i++){
    for(int j=1; j<=9; j++){
      cout<<i<<"x"<<j<<"="<<i*j<<endl;
    }
  }
  return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define FOR(i, s, n) for(int i = s; i < (int)n; i++)
#define per(i, n) for(int i = n; i >= 0; i--)
#define ROF(i, s, n) for(int i = s; i >= (int)n; i--)
#define FORIT(i, A) for (auto i : A)
#define PRINT(x) cout << (x) << "\n"
#define ALL(a) (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define MP make_pair
#define EACH(i, n) for (__typeof((n).begin()) i = (n).begin(); i != (n).end(); ++i)
#define SZ(a) int((a).size())
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())
#define CLR(a) memset((a), 0 ,sizeof(a))
#define NCLR(a) memset((a), -1 ,sizeof(a))
#define dump(x) cout << #x << " = " << (x) << "\n";
#define debug(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << "\n";
#define sq(n) (n) * (n)
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;
typedef vector<LL> VLL;
typedef vector<VLL> VVLL;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef priority_queue<int> maxpq;
typedef priority_queue< int, vector<int>, greater<int> > minpq;
typedef complex<double> P;
static const double EPS = 1e-10;
static const double PI = acos( -1.0 );
static const int mod = 1000000007;
static const int INF = 1 << 29;
static const LL LL_INF = 1152921504606846976;
static const int dx[] = { -1, 0, 1, 0, 1, -1, 1, -1 };
static const int dy[] = { 0, -1, 0, 1, 1, 1, -1, -1 };


int main() {
#ifdef _DEBUG
	printf( "debug\n" );
#endif
	for ( int i = 1; i < 10; i++ ) {
		for ( int j = 1; j < 10; j++ ) {
			printf( "%dx%d=%d\n", i, j, i );
		}
	}
	return 0;
}

C++: #include<iostream>
#include<vector>
#include<string>
#include<cstdio>
using namespace std;

#define rep(i,a) for(int i = 0 ; i < a ; i ++)
#define loop(i,a,b) for(int i = a ; i < b ; i ++)

int main(void){
  loop(i,1,10)
    loop(j,1,10)
    cout<<i<<"x"<<j<<"="<<i*j<<endl;
    //printf("%dx%d=%d\n",i,j,i*j);
    //*/
}

C++: #include<iostream>
using namespace std;

int main(){
	for(int i=1;i<10;i++){
		for(int j=1;j<10;j++){
			cout<<i<<"x"<<j<<"="<<i*j<<endl;
		}
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main() {
    for ( int i = 1; i <= 9; ++ i ) {
        for ( int j = 1; j <= 9; ++ j ) {
            cout << i << "x" << j << "=" << i * j << endl;
        }
    }
	return 0;
}

C++: #include <cstdio>

int main(void){
	for(int i = 1; i < 10; i++){
		for(int j = 1; j < 10; j++){
			printf("%dx%d=%d\n", i, j, i*j);
		}
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main()
{
	for(int i=1;i<=9;i++){
            for(int j=1;j<=9;j++){
		cout << i << "x" << j << "=" << (i*j) << endl;
            }
        }
}