Go: package main

import (
        "fmt"
        "math"
)

var interests [101]float64

func main() {
        var m int
        fmt.Scanf("%d", &m)
        fmt.Printf("%d\n", int(math.Ceil(interest(m)*100))*1000)
}

func interest(m int) (i float64){
        if interests[m] > 0 {
                return interests[m]
        }

        if m == 0 {
                interests[0] = 1.0
                return interests[0]
        }

        if m == 1 {
                interests[1] = 1.05
                return interests[1]
        }
        interests[m] = interest(m/2) * interest(m/2) * interest(m%2)
        return interests[m]
}

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

int main(){
	int n, fraction;
	int debt = 100000;

	cin >> n;

	for(int i = 0; i < n; i++){
		debt = debt + (int)(debt*0.05);
		fraction = debt % 1000;
		if(fraction > 0) debt += 1000 - fraction;
	}

	cout << debt << endl;

	return 0;
}

C++: #include<iostream>

int main(){
  long int n,M;

  M = 100000;

  std::cin >> n;

  for(int i=0;i<n;i++){
    M = M * 1.05;
    if(M%1000!=0){
      M = M - (M%1000) + 1000;
    }
  }
  std::cout << M << std::endl;
}

C++: #include<iostream>

using namespace std;

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

	cin >> n;
	while (n-- > 0) {
		// 一週間ごとにすること
		loan += loan / 20;					// 5%増（5% → 0.05 → 1/20）
		loan = (loan + 999) / 1000 * 1000;	// 1000円未満切り上げ（末尾３ケタが0円の時は切り上げない）
	}
	cout << loan << endl;

	return 0;
}

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

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

C++: #include<stdio.h>

int main(void){
    long i = 100000;
    long j,n;
    scanf("%ld",&n);
    for(j = n;j > 0;j--){
        i = i + i * 0.05;
        if(i % 1000 == 0){
        }
        else{
            i = i / 1000;
            i = i * 1000 + 1000;
        }
    }
    printf("%ld\n",i);
    return 0;
}

C++: import java.math.BigDecimal;
class Main {
public void main(int week) {

		BigDecimal shakkin = new BigDecimal(100000);
		BigDecimal taxper = new BigDecimal(0.05);
		BigDecimal rishi;
		int a = 0;

		for (int i = 0; i <= week; i++) {
			// 5%の利子を計算する
			rishi = shakkin.multiply(taxper);
			// 5%の利子を元金に足す
			shakkin = shakkin.add(rishi);
			// 1000円未満を切り上げる
			a = shakkin.setScale(-3, BigDecimal.ROUND_UP).intValue();
		}
		System.out.println(a);
	}
}

C++: #include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
  int n,pp,money = 100000; // 10万円
  cin >> n;
  for(int i=0;i<n;i++){
    money = money + (int)(money * 0.05); 
    if(money % 1000 > 0){
      money = (money + 1000) - (money % 1000);
    }
  }
  cout << money << endl;
}

C++: #include <iostream>
#include <string>
#include <utility>
#include <algorithm>
#include <queue>
#include <map>
#include <fstream>
#include <array>
#include <utility>
#include <functional>

using namespace std;
typedef long long Int;
#define REP(i , x) for(int i = 0 ; i < x ; ++i)

typedef pair<int, int> P;


Int a = 100000;


int main()
{
	int n;
	while (cin >> n){
		REP(i, n){
			a += a * 0.05;
			if (a % 1000){
				a /= 1000;
				++a;
				a *= 1000;
			}
		}
		cout << a << endl;
	}
}

C++: 
#include <stdio.h>

int main()
{
    int i, n, debt = 100000;
    scanf("%d", &n);

    for(i = 0; i < n; i++)
    {
        debt += 0.05*debt;
        if(debt % 1000)
        {
            debt = debt - debt % 1000 + 1000;
        }
    }
    printf("%d\n", debt);
    return 0;
}

C++: #include<iostream>
int main(){
	int a,i,n;
	a=100000;
	std::cin>>n;
	for(i=0;i<<n;i++){
		a=a*1.05;
		if(a&1000!=0){
		a=a-a%1000;
		a=a+1000;
		}
	}
	std::cout<<a<<std::endl;
	return 0;
}

C++: #include<stdio.h>
int main(void)
{
    int n,i;
	scanf("%d",&n);
	n=n*5;
	n=1000*n;
	n=100000+n;
	i=n%10000;
	if(i!=0){
	    i=10000-i;
	    n=n+i;
	}
	printf("%d\n",n);
	return 0;
}

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

int main(void)
{
  int n;
  cin >> n ;
  int me=100000;
  for(int i =0;i < n;i++){
    me *= 1.05;

    if(me % 1000 != 0){
      me += 1000 - (me % 1000);
    }
  }
  cout << me << endl;
}

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

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

C++: #include <iostream>
using namespace std;
int StartDebt = 100000;

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

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

using namespace std;

int main() {
    int n;
    double m = 100;
    cin >> n;
    while (n--) {
        m = ceil(m * 1.05);
    }
    cout << m * 1000 << endl;

    return 0;
}

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

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

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

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

C++: #include<iostream>
#include<cstdio>
#include<cmath>

int main(){
  int n,ans;
  double total;
  double check;

  scanf("%d",&n);
  total = 100000.0;
  for(int i=0;i<n;i++){
    total = total*1.05;
    check = ceil(total/1000.0);
    total = check*1000.0;
  }

  ans = total;
  printf("%d\n",ans);

  return 0;
}

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

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

C++: #include "bits/stdc++.h"

#define REP(i,num) for(int i=0;i<(num);++i)
#define ALL(c) c.begin(),c.end()
#define PRINTALL(c) for(auto& x:c){cout<<x<<' ';}cout<<endl;
#define PAIRCOMP(c,comp) [](const pair<ll,ll>& lhs,const pair<ll,ll>& rhs){return lhs.c comp rhs.c;}

using namespace std;
using ll = long long;

constexpr ll atcoder_mod = 1e9+7;

template<typename T=int>
T in(){T x; cin >> x; return (x);}
template<typename T=int,typename C=vector<T>>
C vecin(int N){C x(N);REP(i,N){x[i]=in<T>();}return move(x);}

void vout(){cout << endl;}
template<typename Head,typename... Tail>
void vout(Head&& h,Tail&&... t){cout << ' ' << h;vout(forward<Tail>(t)...);}
void out(){cout << endl;}
template<typename Head,typename... Tail>
void out(Head&& h,Tail&&... t){cout << h;vout(forward<Tail>(t)...);}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);
	
	ll M=100000;
	int N=in();
	REP(i,N){
		ll DM = (ll)(M*1.05);
		ll f = DM%1000;
		if(f){
			DM = DM-f+1000;
		}
		M = DM;
	}
	
	out(M);
	return 0;
}

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

int main() {
	int n=0;
	while(cin >> n){
		if(n==0)	break;
		int m=100000;
		while(--n>=0){
			m+=m*0.05;
			m+=(m%1000==0?0:1000);
			m/=1000;	m*=1000;
		}
		cout << m <<endl;
	}
	return 0;
}

C++: #include <iostream>

int main()
{
        int n, money = 100000;
        std::cin >> n;
        while(n--)
                money += money*5/100, money = (money / 1000 + ((money % 1000)?(1):(0))) * 1000;
        std::cout << money << std::endl;
        return 0;
}

C++: #include<stdio.h>

int main(){
	int  s=100000;

	int n;
	scanf("%d",&n);


	for(;n--;){
		if(int(s*1.05)%1000==0){
			s=int(s*1.05);
		}else{
			s= int(s*1.05) + (1000- int(s*1.05) % 1000);
		}
	}
	printf("%d\n",s);

	return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
  int n;
  while(cin >> n){
    int cur = 100000;
    for(int i=0;i<n;i++){
      cur = 1.05*cur;
      cur = cur/1000*1000;
    }
    cout << cur << endl;
  }
}