Go: package main

import (
	"bufio"
	"os"
	"fmt"
)

func reverse(s string) string {
	runes := []rune(s)
	for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
		runes[i], runes[j] = runes[j], runes[i]
	}
	return string(runes)
}

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	input := scanner.Text()
	fmt.Println(reverse(input))
}

C++: #include <bits/stdc++.h>
#include <iostream>
#include <string>
#include <stdio.h>
#include <math.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
using ll = long long;
typedef long double lb;
using namespace std;
int main(){
  string S;
  cin >> S;
  int SI = S.size();
  for(int i = SI - 1; i >= 0; i--){
    cout << S[i];
  }
  cout << endl;
  return 0;
}

C++: #include<stdio,h>
#include<string.h>
int main(){
char a[20];
int l,i;
scanf("%s",a);
l=strlen(a);
for(i=l-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}

C++: char s[22];
main(i){
  for(;~scanf("%c",s+i);i++);
  for(;i;putchar(--i?s[i]:10));
}

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

int main(){
	std::string str;
	std::cin >> str;

	for(int i = str.length()-1; i >= 0 ; --i)
		std::cout << str.at(i);

	std::cout << std::endl;


  return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
	string str;
	cin>>str;
	reverse(begin(str),end(str));
	cout<<str<<endl;
	int a;cin>>a;

	return 0;
}

C++: #define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include <stdio.h>
#include <algorithm>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream>
using namespace std;
int main() {
	string wow;
	cin >> wow;
	for (int i = wow.size() - 1;i >= 0;--i) {
		printf("%c", wow[i]);
	}
	printf("\n");
}

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

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

C++: #include<bits/stdc++.h>

using namespace std;

int main(){
  char str[21];
  cin >> str;
  for(int i=strlen(str);i>=0;i--){
    printf("%c",str[i]);
  }
  cout << endl;
  return 0;
}

C++: p gets.chomp.reverse

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

int main(){
    std::string str;
    std::queue<char> que;
    std::cin >> str;
    const int size = str.size();
    for(int i = 0; i < size; ++i){
        que.push(str.back());
        str.erase(str.size() - 1, 1);
    }
    for(int i = 0; i < size; ++i){
        if(i != size - 1){
            std::cout << que.front();
            que.pop();
        }else{
            std::cout << que.front() << std::endl;
        }
    }
    return 0;
}

C++: #include<functional>
#include<algorithm>
#include<iostream>
#include<utility>
#include<string>
#include<vector>
#include<cmath>
#include<stack>
#include<queue>
#include<deque>
#include<map>
#define rep(i,n) for(int i=0;i<n;i++)
#define loop(i,x,n) for(int i=x;i<n;i++)
#define pf push_front
#define pb push_back
#define int long long
using namespace std;
const int INF=1000000007;
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};



signed main(){
  string s;
  cin>>s;
  for(int i=s.size();i>=0;i--){
    cout<<s[i];
  }
  cout<<endl;
  return 0;
}

C++: #include <iostream>

//文字列の文字数を返す関数
int str_length(char* str)
{
	int length;
	for (length = 0; length < 20; length++)  //文字列は最大20文字のため、length < 20
	{
		if (str[length] == '\0')  //ヌル記号→文字列の終端
		{
			break;
		}
	}
	return length;  //ヌル記号の配列番号＝文字列の文字数
}

//文字列を逆順に出力する関数
void reverce_output(char* str){
	int length = str_length(str);  //文字列の文字数を調べる
	int str_end = length - 1;  //文字数-1 = char型配列の、最後の文字の番号
	for (int i = 0; i < length; i++)
	{
		std::cout << str[str_end - i];  //文字列を逆順に出力
	}
	std::cout << '\n';
}

int main(){
	char input_char[20];  //入力される文字列の変数
	std::cin >> input_char;
	reverce_output(input_char); //文字列を逆順に出力
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iomanip>
#include <utility>
#include <string>
typedef unsigned long ul;

using namespace std;

int main(){
	int len;
	string str;
	cin >> str;
	len = str.length();
	for(int i = len-1; i >= 0; i--){
		cout << str.at(i) << endl;
	}
}

C++: #include <stdio.h>
#include <string.h>
 
int main(void)
{
  char str[25] = {0};
  int cx;

  fgets(str, sizeof(str), stdin);
  cx = strlen(str);

  for (int x=cx-2; x>=0; x--) {
    putchar(str[x]);
  }
  puts("");
 
  return 0;
}

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

using namespace std;

int main(void) {
	string str;
	getline(cin, str);

	for (int i = 0; i < str.length() / 2; i++) {
		char c;
		c = str[i];
		str[i] = str[str.length() - 1 - i];
		str[str.length() - 1 - i] = c;
	}

	cout << str << endl;

	return 0;
}

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

int main(){
	string s;
	cin>>s;
	for(int i=s.length()-1;i>=0;i--) cout<<s[i];
	cout<<endl;
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;


int main(){
       string s;
       cin>>s;
       reverse  (s.begin(),s.end());
       cout<<s<<endl;

    return 0;
}

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

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

C++: #include <iostream>
#include <string.h>
#define NUM_MOJI 20

using namespace std;

int main()
{
	char moji[NUM_MOJI];
	char r_moji[NUM_MOJI];

	cout << "文字列を入力してください："<<endl;

	//文字列入力
	cin >> moji;
	
	//反転
	for(int i=0; i < strlen(moji); ++i)
	{
		r_moji[i] = moji[strlen(moji)-(i+1)];
	}

	//出力
	for(int i=0; i < strlen(moji); ++i)
	{
		cout << r_moji[i];
	}



	return 0;
}

C++: #include<iostream>
int main(){char c[21];std::cin>>c;std::string d(c);std::reverse(d.begin(),d.end());std::cout<<d.c_str()<<'\n';}

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

using namespace std;

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

  for ( size_t i = 0; i < str.size(); i++ )
    cout << str[str.size()-1-i];

  cout << endl;
  
  return 0;
}

C++: #include <stdio.h>
#include <string.h>

int main(){
  char str[30];
  int len, i;

  scanf("%[^\n]", str);
  len=strlen(str);
  for(i=0; i<len; i++){
    putchar(str[len-i-1]);
  }
  putchar('\n');
  return 0;
}

C++: /*
　　　　 ∧＿∧　にっぽんちゃちゃちゃ
　／＼（　・∀・）／ヽ
（ ●　と　　　つ　● ）　にっぽんちゃちゃちゃ
　＼/⊂、 ノ　　＼ノ
　　　　　し'
*/
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<(int)(n);++i)
#define repone(i,n) for(int i=1;i<(int)(n);++i)
#define repo(i,o,n) for(int i=o;i<(int)(n);++i)
#define Rep(j,n) for(int j=0;j<(int)(n);++j)
#define Repone(j,n) for(int j=1;j<(int)(n);++j)
#define all(v) (v).begin(),(v).end()
#define rall(v) (v).rbegin(),(v).rend()
#define int long long
#define MOD 1000000007
#define INF 9223372036854775807

signed main()
{
  string xyz ="";
int x=0,y=0,z=0,w=0,i=0,j=0,n=0;
std::cin >> xyz;

for(i=xyz.size()-1;i>=0;i--){
  std::cout << xyz[i];
}
std::cout  << '\n';

}

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

int main() {
	string str;
	cin >> str;
	for (int i = 0; i < str.size(); i++){
		cout << str[str.size()-i-1];
	}
	cout << "\0\n";
	cin >> str;
}

C++: #include<stdio.h>
#include<string.h>

void main()
{
 char str[20],temp;
 int i,j=0;
 gets(str);
 i=0;
 j=strlen(str)-1;

 while(i<j)
     {
     temp=str[i];
     str[i]=str[j];
     str[j]=temp;
     i++;
     j--;
     }

 printf("%s",str);
 return(0);
}

C++: #include <iostream>
#include <vector>
#include <utility>
#include <string>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <string.h>
#include <deque>
#define REP(i,j,n) for(int i=j;i<n;i++)
#define SORT(x) sort(x.begin(),x.end())

using namespace std;



int main() {
	string s;
	char v[20];
	/*getline(cin,s);

	for (auto itr = s.end(); itr != s.begin(); itr--) {
		cout << *itr;
	}
	cout << endl;*/

	cin >> v;
	for (int i = strlen(v)-1; i > -1; i--) {
		cout << v[i];
	}
	cout << endl;
	return 0;
}