Go: package main

import (
        "fmt"
)

func main () {
        var str string
        fmt.Scanf("%s", &str)
        show(len(str)-1, str)
}

func show(n int, str string) {
        if n == 0 {
                fmt.Printf("%s\n", string(str[n]))
        } else {
                fmt.Printf("%s", string(str[n]))
                show(n-1, str)
        }
}

C++: /*
    ????????°??§???????????¨????????????
*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <limits.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <iterator>
#include <vector>
#include <map>
#include <utility>
#define LLU unsigned long long int
#define LL long long int
#define LD long double
using namespace std;
#define LLUmax ULLONG_MAX
#define LLmax LLONG_MAX
#define dmax INT_MAX
#define vd vector<int>
#define vLL vector<long long int>
#define vLLU vector<unsigned long long int> 
#define pb push_back
#define mp make_pair
#define fi first
#define sec second
#define debug printf("asd\n")
#define debugd(a) printf("--%d\n",a)
#define debugdd(a,b) printf("--%d %d\n",a,b)
#define debugarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i]);printf("\n")
#define newline printf("\n")
#define forin(a,b,c) for(int a=b ; a<c ; a++)
#define forde(a,b,c) for(int a=b ; a<c ; a--)


inline void scd(int &a){scanf("%d",&a);}
inline void scdd(int &a,int &b){scanf("%d %d",&a,&b);}
inline void sctd(int &a,int &b,int &c){scanf("%d %d %d",&a,&b,&c);}
inline void scdlld(long int &a,long int &b){scanf("%I64d %I64d",&a,&b);}
inline void sclld(long long int &a){scanf("%I64d",&a);}

#define scarrd(a,b) for(int index=0 ; index<b ; index++)scanf("%d",&a[index])
#define prdlld(a,b) printf("%I64d %I64d",a,b)
#define prdd(a,b) printf("%d %d",a,b)
#define prd(a) printf("%d",a)
#define prarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i])
#define iniarr(a,b) for(int i=0 ; i<b ;i++)a[i]=0
#define arr(a,b) int *a=(int *)malloc(b*sizeof(int))
#define llarr(a,b) long long int *a=(long long int *)malloc(b*sizeof(long long int))
#define st(a,b) char *a=(char *)malloc(b*sizeof(char))
#define grav 9.8
#define pi 3.14159265

int main()
{
	char a[20000];
	scanf("%s",a);
	int len=strlen(a);
	for(int i=len-1 ; i>=0 ; i--)
	printf("%c",a[i]);
	newline;
	return 0;
}

C++: #include <iostream>
#include <string>

using namespace std;

int main(){
	string s;
	cin >> s;

	for(int i=s.size(); i--){
		cout << s[i];
	}
	cout << endl;
}

C++: #include <iostream>
#include <string>
using namespace std;
int main(){
	string s;
	cin>>s;
	for(int i=0;i<20;i++){
		cout<<s[20-1-i]<;
	}
	cout<<endl;
    return 0;
}

C++: /*文字列 str を入力し、その文字列を逆順に出力するプログラムを作成して下さい。
文字は半角英数字のみで、20 文字以内とします。*/ 
#include<iostream>
using namespace std;
int main(){
    string str;
    cin>>str;
    char ji[str.size()];
    for(int i=0;i<=str.size();i++){
       ji[i]=str[str.size()-i];
    }
    for(int i=0;i<=str.size();i++){
       cout<<ji[i];
    }
    cout<<endl;
}

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

int main() {
  string str,stri;
  int n;
  cin >> str;
  n = str.size();
  for(int i=0;i < n/2;i++) {
    stri[0] = str[i];
    str[i] = str[n-i-1];
    str[n-i-1] = stri[0];
  }
  cout << str << endl;
}

C++: #include <stdio.h>

int main(void) {
	char str[20];
	int i;
	scanf("%s",str);
	for(i = 0; strlen(str) > i; i++){
		printf("%c",str[strlen(str)-1 - i]);
	}
	printf("\n");
	return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>

int main(){
	std::string str;
	std::cin >> str;
	std::reverse(str.begin(),str.end());
	std::cout << str << std::endl;
}

C++: /*
 * http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0006
 */
#include <iostream>
#include <string>

using namespace	std;

int
main()
{
	string str;
	cin >> str;
	for (string::reverse_iterator rit = str.rbegin(); rit != str.rend(); ++rit)
		cout << *rit;
	cout << endl;
	return 0;
}

C++: #include<iostream>
#include<string>
#include<algorithm>

int main(void){

    std::string str;
    std::getline(std::cin,str);
    std::reverse(str.begin(),str.end());
    std::cout<<str<<std::endl;
    return 0;
}

C++: #include <iostream>
 
using namespace std;
 
int main() {
    char str[25];
    for (int i=0;i<25;i++) {
    	str[i]='$';
    }
    cin >> str;
    int x;
    for (int i=0;;i++) {
    	if (str[i]=='$') {
    		x=i-1;
    		break;
    	}
    }
    for (int i=0;i<=x;i++) {
    	cout << str[x-i];
    }
    //cout << endl;
    return 0;
}

C++: #include <iostream>
using namaspace std;
int main(){
	char str[20];	
	for (int A=0;A<20;A++)cin>>str[A];
	for (int A=19;A>=0;A--)cout<<str[A];
	cout<<endl;
	return 0;
}

C++: #include <iostream>
#include <cstring>
using namespace std;
  
int main(){
    char str[21];
    char temp[21];
  
    memset(str, 0, sizeof(str));
    memset(temp, 0, sizeof(temp));
  
    while(cin >> str){
		int i=0;
        int n = strlen(str);
		for(n--; n>=0; ){
            temp[i++] = str[n--];
        }
        cout << temp << endl;
    }
    return 0;
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <cstdio>
#include <cmath>
#include <stdint.h>
using namespace std;

int main()
{
  string str; cin >> str;
  reverse(str.begin(), str.end());
  cout << str << endl;
  return 0;
}

C++: #include<iostream>
#include<array>
#include<algorithm>

int main(){
	std::array<char, 20>str;
	
	for(int i=0; i<20; ++i){
		std::cin >> str[i];
	}
	
	for(int i=str.size(); i>=0; --i){
		std::cout << str[i];
	}
	return 0;
}

C++: #include <stdio.h>

#include <iostream>

int main() {

	const int len = 20;
	char charr[len + 1];

	scanf("%s", charr);

	for (int i = 20; i >= 0; i--) {
		if (charr[i] != NULL)
			std::cout << charr[i];
	}

}

C++: #include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define MAX 12345
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rev(i,a,b) for(int i=a;i>=b;i--)

int main()
{
    string str;

    while(cin>>str){
        ll l=str.size();
        while(l--){
            cout << str[len];
        }
        cout << endl;
    }

    return 0;
}

C++: #include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <queue>
#include <stack>
#include <cmath>
#include <cstdio>
#include <string>
#include <sstream>

using namespace std;

#define rep(i, n) for(int i = 0; i < (int)n; ++i)
#define repn(i, n) for(int i = 1; i <= (int)n; ++i)
#define pb push_back
#define lb lower_bound
#define mp make_pair
#define ite iterator
#define max2(x, y) ((x) > (y)) ? (x) : (y)
#define max3(x,y,z) max2((x), max2((y),(z)))
#define max4(v,w,x,y) max2(max2((v),(w)), max2((x),(y)))
#define min2(x, y) ((x) > (y)) ? (y) : (x)
#define min3(x,y,z) min2((x), min2((y),(z)))
#define min4(v,w,x,y) min2(min2((v),(w)), min2((x),(y)))
#define ul unsigned long
#define ull unsigned long long
#define INF 1000000007
#define MOD 1000000007
#define fs first
#define sd second

template<typename T>
bool elem(set<T> st, T val){
	return (st.find(val) != st.end());
}

template<typename T>
void printv(vector<T> vt){
    rep(i, vt.size() - 1)
        cout << vt[i] << " ";
    cout << vt[vt.size() - 1] << endl;
}

typedef vector<int> vint;
typedef vector<ul> vul;
typedef vector<ull> vull;
typedef pair<int, int> pii;


int main(void){
    string str;
    cin >> str;
    rep(i, str.length()) cout << str[str.length() - 1 - i];
    cout << endl;
    return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
 string s;
 int i,l;
 cin>>s;
 l=s.size();
 for (i=l-1;i>=0;i--)
  cout<<s[i];
 cout<<endl;
return 0;
}

C++: #include <algorithm>
#include <iostream>
#include <string> 

using namespace std;
 
int main()
{ 
	string s;
	cin >> s;

	reverse(s.begin(), s.end());

	cout << s << endl;

	return 0;
}