Go: package main
import (
	"fmt"
	"os"
	"strconv"
	"bufio"
	"math"
)

var sc = bufio.NewScanner(os.Stdin)

func main(){
	sc.Split(bufio.ScanWords)
	n := nextInt()
	ans := calc(n)
	fmt.Println(ans)
}

func calc(n int) float64{
	tmp := 100000.0
	for i:=0; i<n; i++{
		tmp+=tmp*0.05
	}
	return Round(tmp, -4)
}

func Round(f float64, places int) float64{
	shift := math.Pow(10, float64(places))
	return math.Floor(f * shift+.5)/shift
}

func next()string{
	sc.Scan()
	return sc.Text()
}

func nextInt()int{
	a, _ := strconv.Atoi(next())
	return a
}

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

int main(){
	int N;
	cin>>N;
	int res=100000;
	for(int i=1;i<=N;i++){
		res=res*105/100;
		res=(res+999)/1000*1000;
	}
	cout<<res<<endl;
	return 0;
}

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

int main() {
	int n;
	cin >> n;

	int a = 100000;
	for (int i = 0; i < n; i++) {
		a *= 1.05;
		int n = a % 1000;

		if (n) {
			a -= n;
			a += 1000;
		}
	}

	cout << a << endl;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <cmath>
//ranker
using namespace std;

#define REPS(i, a, n) for (int i = (a); i < (n); ++i)
#define REP(i, n) REPS(i, 0, n)
#define RREP(i, n) REPS(i, 1, n + 1)
#define DEPS(i, a, n) for (int i = (a); i >= n; --i)
#define DEP(i, n) DEPS(i, n, 0)

using ll = long long;
using ull = unsigned long long;
using vi = vector<int>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;
using pii = pair<int, int>;
using pis = pair<int, string>;
using psi = pair<string, int>;
using D = double;


const int Max=10000000;
bool prime[Max];
int main(void){
  int n, sum=100000;
  cin >> n;

  for(int i=0; i<n; i++){
    sum *= 1.05;
    if(sum%1000 != 0) sum = (sum/1000+1)*1000;
  }
  cout << sum << endl;
}

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

int main(){
	int n, output = 100000;
	cin >> n;
	for (int i = 0; i < n; i++){
		output *= 1.05;
		if (output % 1000 != 0){
			output += 1000;
			output -= output % 1000;
		}
	}
	cout << output << endl;
	return 0;
}

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

#define rep(i,n) for(int i=0; i<n; i++)
int main(){
	int debt=100000;
	int n;
	cin >> n;
	rep(i,n){
	   if(debt%20000==0)debt = debt*1.05;
	   else debt = (int)(debt*1.05/1000+1)*1000;
	}
	cout << debt << endl;
    return 0;
}

C++: #include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define int long long
using namespace std;
typedef pair<int, int> P;

signed main(){
	int n;
	cin >> n;
	int now = 100000;
	rep(i, 0, n){
		now += now / 20;
		now = (now + 999) / 1000;
		now *= 1000;
	}
	cout << now << endl;
}

C++: #include <iostream>
using namespace std;
int main(){
    int n;cin>>n;
    int nw = 100000;
    for(int i = 0; n > i; i++){
        int z = (nw/100*105);
        int t = z/1000*1000;
        if(z%1000){
            t += 1000;
        }
        nw = t;
    }
    cout << nw << endl;
}

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

void test();
int  interest(int debt, float interest_rate, int n);

int main(void)
{
	test();
	return 0;
}


void test()
{
	int debt,n;
	double money;
	float interest_rate;
	debt = 100000;
	interest_rate = 1.05;
	cin >> n;

	debt = interest(debt, interest_rate, n);

	money = (double) debt / 1000;// 1000?????\???????°???°?????\??????

	money = ceil(money) * 1000;// ?°???°?????\?????????????????????????????????

	debt = money;

	cout << debt << endl;
}

int interest(int debt, float interest_rate,int n)??????//?????°??¢??°
{

	if (n == 1)
		return debt * interest_rate;
	else
		return interest(debt, interest_rate, n - 1) * interest_rate;
}

C++: 
//http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0007&lang=jp

#include <algorithm>
#include <iostream>
#include <vector>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

//テ」ツδ榲」ツつッテ」ツδュテ・ツョツ堙ァツセツゥ
#define ALL(v) (v).begin(),(v).end()
#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(array[0]))
#define REP(i,a,b) for(int i=(int)(a); i<(int)(b); ++i)
#define rep(i,n) for(int i=0;i<(int)(n);++i)
#define SORT(x) sort(begin(x),end(x))
#define SELECT_SORT(x, n) sort(begin(x),begin(x)+n)
#define SWAP(type, a, b) do {type tmp = a; a = b; b = tmp;} while (0)
#define rep_split(tok,a_str,re) for(char *tok = strtok((char *)a_str.c_str(),re); tok != NULL; tok = strtok(NULL,re))

//テ・ツョツ堙ヲツ閉ー
#define INF 2000000000000
#define MAX 10

//DEBUGテァツ板ィ
#define BAR() cout << "----------------------------" << endl;
#define DUMP(v) (cerr << #v << ": " << v << endl)
#define PRINT(list) cout << "{ "; for(auto nth : list){ cout << nth << " "; } cout << "}" << endl;


int yami_kin(int money)
{
	int risoku = money*0.05;
	money = money + risoku;
	
	if(money % 1000 == 0){
		return money;
	}else{
		return (money - (money%1000)) + 1000;
	}
}

int main()
{
	int money= 100000; //10テ、ツクツ?・ツ??
	int n=0;
	cin >> n;
	for(int i=0; i<n; i++){
		money = yami_kin(money);
		//cout << money << endl;
	}
	cout << money << endl;
	
}

C++: #include "stdio.h"

#define DEBT 100000
#define INTEREST 5

int main()
{
	int n, m1;
	double debt, interest;

	debt = DEBT;
	interest = 1 + INTEREST/100.0;

	scanf("%d", &n);

	if (n > 100) return 0;

	for (int i = 0; i < n; i++){
		debt = (int)(debt * interest);

		if ((int)debt%1000 > 0) debt += 1000;
		debt -= (int)debt % 1000;
	}

	printf("%d\n", (int)debt);
}

C++: #include <iostream>

int main(){
	int n;
	std::cin >> n;
	double result=100;
	for(int i=n;i;i--){
		result*=1.05;
		result=(int)(result+0.9);
	}
	
	result*=1000;
	int i=result;
	std::cout << i;

	return 0;
}

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

int main() {
	int n;
	int money = 100000, copy;
	int m = 0;
	int M[1000];

	cin >> n;

	for(int i = 1; i <= n; i++) {
		money += money * 0.05;
	}

	copy = money;

	while(1) {
		copy /= 10;
		m++;
		if(copy == 0) {
			break;
		}
	}

	for(int i = 0; i < m; i++) {
		M[i] = money % 10;
		money /= 10;
	}

	for(int i = 0; i < m; i++) {
		if(i <= 3) {
			M[i] = 0;
		}
		else if(i == 4) {
			M[i] += 1;
			if(M[i] >= 10) {
				M[i + 1] += 1;
				M[i] = 0;
			}
			break;
		}
	}

	money = 0;

	for(int i = 1; i < m; i++) {
		money += M[i] * 10;
	}

	for(int i = m - 1; i >= 0; i--) {
		cout << M[i];
	}
	cout << endl;

}

C++: #include <iostream>

int main(){
int money = 100000;
int n;

std::cin >> n;

for(int i = 0; i < n; i++){
money *= 1.05;
money++;
money += 1000 - money % 1000;
}

std::cout << money << std::endl;

}

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

int main(){

  int n,tmp;
  int debt = 100000;

  cin >> n;

  while(n){
    debt *=  1.05;
    if( debt % 1000 > 0 ){
      debt += 1000;
      debt -= debt%1000;
    }
    n--;
  }

  cout << debt << endl; 
  return 0;
}

C++: #include <iostream>
#include <math.h>
using namespace std;
int main(void){
   int a;
   float b = 100000.0f;
   std::cin >> a;
   if(a < 100){
       for(int i = 0; i < a; i++){
           b *= 1.05f;
           b /= 1000;
           double c = ceil(b);
           b = c * 1000;
       }
       std::cout << b << std::endl;
   }
}

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

int main(){
  int n;
  int m=100000;
  cin>>n;
  for(int i=0;i<n;i++){
    m *=1.05;
    if(m%1000>0) m = (m/1000+1)*1000;
  }
  cout<<m<<endl;
  return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;
const ll inf = (1 << 30) - 1;
const ll infll = (1LL << 61) - 1;

int r, ans = 100000;

int main()
{
    cin >> r;
    for (int i = 0; i < r; i++)
    {
        ans *= 1.05;
        if (ans % 1000 != 0)
            ans = ans - ans % 1000 + 1000;
    }
    cout << ans << endl;
}