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++: #include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
using namespace std;

#define min(x , y) ((x) > (y) ? (y) : (x))
#define max(x , y) ((x) > (y) ? (x) : (y))
#define abs(x) ((x) > 0 ? (x) : -(x))


const int MAXN = 1010;
const int INF = MAXN * 10;
int n;
int dp[MAXN][10][10];
int a[MAXN], b[MAXN];
char s1[MAXN], s2[MAXN];

int dfs(int k, int i, int j){

    if(k == n){
//        printf("rt: %d  %d\n", i, j);
        if(i == b[n - 2] && j == b[n - 1])  return 0;
        return INF;
    }
    int &ret = dp[i][j][k];
    if(ret != -1)  {
//        printf("%d %d %d\n", k, i, j);
        return ret;
    }

    ret = INF;
    for(int u = 0; u < 2; ++u){

        int t1 = dfs(k, i, (j + u) % 10) + u;
        int t2 = dfs(k, i, (j - u + 10) % 10) + u;
        ret = min(t1, t2);

//        t1 = dfs(k, (i + u) % 10, (j + u) % 10) + u;
//        t2 = dfs(k, (i - u + 10) % 10, (j - u + 10) % 10 ) + u;
//        ret = min(ret, min(t1, t2));
//
//        t1 = dfs(k, (i + u) % 10, j) + u;
//        t2 = dfs(k, (i - u + 10) % 10, j) + u;
//        ret = min(ret, min(t1, t2));

    }

    if(i == b[k - 2]) {
        ret = dfs(k + 1, j, a[k]);
    }else{

//        int u = (b[k - 2] - i + 10) % 10;
//        int d = (i - b[k - 2] + 10) % 10;
//
//        ret = min(ret, dfs(k + 1, (j + u) % 10, (a[k] + u) % 10) + u);
//        ret = min(ret, dfs(k + 1, (j - d + 10) % 10, (a[k] - d + 10) % 10) + d);
    }

    printf("%d %d %d  %d  %d  \n", k, i, j, ret, b[k - 2]);
    return ret;
}



int main()
{

    freopen("C.in", "r", stdin);

    a[0] = b[0] = a[1] = b[1] = 0;
    while(~scanf("%s%s", s1 + 2, s2 + 2)){

//        printf("<%s  %s>\n", s1 + 2, s2 + 2);
        n = strlen(s1 + 2) + 2;
        for(int i = 2; i < n; ++i)
        {
            a[i] = s1[i] - '0';
            b[i] = s2[i] - '0';
//            printf("%d ", b[i]);
        }

        for(int i = 0; i <= n + 10; ++i)
        for(int j = 0; j < 10; ++j)
        for(int k = 0; k < 10; ++k)
            dp[i][j][k] = -1;
//        memset(dp, -1, sizeof(dp));
//        printf("n=%d\n", n);
        dfs(2, 0, 0);
        printf("%d\n", dfs(2, 0, 0));
    }

    return 0;
}

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

int main() {
	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 namespase 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(){
  for(int i = 0; i < 9; i++)
    for(int j = 0; j < 9; j++)
      printf("%dx%d=%d\n",i+1,j+1,(i+1)*(j+1));
}

C++: #include <stdio.h>

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

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

int main(){
	int a, b;
	 int i = 0;
	 for (a = 1; a <= 9; a++){
		 for (b = 1; b <= 9; b++){
			 i = a*b;
		 }
		 cout << i << endl;
	 }
		   return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pb push_back

# define inOut(a,b) freopen(a,"r",stdin);freopen(b,"w",stdout);
# define RESET(a) memset(a,0,sizeof(a))
# define MEMO(a) memset(a,-1,sizeof(a))
# define DEBUG puts("Debug-Has-Come-Until-Here")


typedef pair<int,int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;

int main(){
	cin.tie(NULL);

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

C++: #include<cstdio>
#include<iostream>
using namespace std;
int co[50][3]={0};
int func(int N,int M);
int main ()
{
    int n,m,ans;
    char k[51][51];
    scanf("%d%d",&n,&m);
    for(int i=n;i<50;i++){
        co[i][0]=-1;
        co[i][1]=-1;
        co[i][2]=-1;
    }
    for(int i=0;i<n;i++){
        scanf("%s",&k[i]);
        for(int j=0;j<m;j++){
            if(k[i][j]=='W') co[i][1]++,co[i][2]++;
            if(k[i][j]=='B') co[i][0]++,co[i][2]++;
            if(k[i][j]=='R') co[i][0]++,co[i][1]++;
        }
    }
    ans=func(0,0);
    printf("%d\n",ans);
    return 0;
}
int func(int N,int M)
{
    int B,C;
    if(M>2) return 1000;
    if(co[N+1][M]==-1&&M!=2) return 1000;
    if(co[N+1][M]==-1&&M==2) return co[N][M];
    B=func(N+1,M+1);
    C=func(N+1,M);
    if(B>C) return co[N][M]+C;
    else if(B<=C) return co[N][M]+B;
}

C++: #include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
   int i,j,k,l;
   int a,b,c,d;
   int memory[2];
   int n;

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

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

int main(){

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

    return 0;
}

C++: #include <stdio.h>
int main(void){
    for(int i=0;i<9*9;i++)printf("%dx%d=%d\n",i/9+1,i%9+1,i+1);
    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 * j );
		}
	}
	return 0;
}

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<<"\n";
        }
    }
    return 0;
}

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

int main() {
  int a = 1;
  int b = 1;
  for(a < 10 && b < 9) {
    cout << b << "x" << a << "=" << a*b << endl;
    ++a;
    if(a == 10 && b <= 8)
    ++b;
    a = 1;
  }
  return 0;
}