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)*10))*10000)
}

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]
}

Python: from decimal import Decimal, ROUND_HALF_UP
week = int(input())
debt = 100000 * (1 + 0.05)**week
print(int(Decimal(debt).quantize(Decimal('1E4'), rounding=ROUND_HALF_UP)))

Python: import math
n = int(input())
debt = 100000
for i in range(n):
	debt = int(math.ceil(debt * 1.05 / 1000)) * 1000
print(debt)

C++: #include <stdlib.h>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>



using namespace std;

int main()
{
	const int BUFF_SIZE = 100;
	char buff[BUFF_SIZE];
	int y = 100000;

	string s;
	getline(cin, s);
	
	long n;
	sscanf(s.c_str(), "%ld", &n);
	
//	printf("%d\n", n);
	
	for (int i = 0; i < n; i++)
	{
		double z = y;
		z *= 1.05;
		y = (int)z;
		
		sprintf(buff, "%d", y);
		
	
		string t = buff;
		string u = t.substr(t.length() - 3);
		int aa;
		sscanf(u.c_str(), "%ld", &aa);
		
		y /= 1000;
		y *= 1000;
		if (0 < aa)
		{
			y += 1000;
		}
	}
	
	printf("%d\n", y);

	return 0;
}

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

double cutup(double x) {
  if (x - (double)((int)x / 1000) * 1000 > 0) {
    x = (double)((((int)x / 1000) + 1) * 1000);
  }
  return x;
}

double money(double x, int target, int depth = 0) {
  if (target == depth) { return x; }
  return money(cutup(x * 1.05), target, depth + 1);
}

int main() {
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);

  int n, x;
  cin >> n;

  printf("%.0f\n", money(100000., n));

  return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	bool bo=false;
	int n,a=100000;
	cin>>n;
	for(int i=0;i<n;i++){
		a+=100000*0.05;
	}
	if(a%10000==0 && a%1000==0 && a%100==0 && a%10==0){
		bo=true;
	}
	a/=10000;
	if(bo==false){
		a=a+1;
	}
	cout<<a*10000<<endl;
	return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
	int debt = 100000.0;
	int n, r;
	cin >> n;
	while ( n-- > 0 ){
		debt *= 1.05;
		r = debt % 1000;
		if ( r != 0 ){
			debt = debt - r + 1000;
		}
	}
	cout << debt << endl;

	return 0;
}

C++: #include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    int n;
    cin >> n;
    cout << 100000 * (1+(n+1)*0.05) << endl;
    return 0;
}

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

int main(){
int n,M,m;
M=100;
cin>>n;
for(int i=0;i<n;i++){
m=(M+19)/20;
M+=m;
}
cout<<M*1000<<endl;
}

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

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

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

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

using namespace std;

int main (int argc, char * const argv[]) {
    // insert code here...
    int n, t, d=100000;
	
	cin>>n;
	
	for(int i=0;i<n;i++){
		d*=1.05;
		t=d;
		t/=1000;
		t*=1000;
		if(d-t>0){
			d=t+1000;
		}
		//cout<<d<<endl;
		//cout<<d-t<<endl<<endl;
	}
	cout<<d<<endl;
	
	return 0;
}

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

using namespace std;


int main(){
    int week;
    cin >> week;
    double money =10;
    
    for(int i=0; i<week; i++){
        money=money * 1.05;
    }
    printf("%d\n",int(money+0.999)*10000);
}

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

int main(){
    int n;
    cin >> n;
    int ans;
    double now = 100000;
    for(int i = 0 ; i < n ; ++i){
        now *= 1.05;
        int t = now;
        if(t == now && t % 1000 == 0){
            ans = t;
            continue;
        }
        t = t / 1000 * 1000 + 1000;
        ans = t;
        now = ans;
    }

    cout << ans << endl;

    return 0;
}

C++: #include <algorithm>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <list>
#include <vector>
using namespace std;

const double interest = 0.05;
const int roundYen = 1000;

int weeklyAdd(int debt) {
  debt = debt * (1 + interest);
  debt = ceil(debt / roundYen) * roundYen;
  std::cout << debt << '\n';
  return debt;
}

int main(int argc, char const *argv[]) {
  // int week = 5;
  int week;
  std::cin >> week;
  int debt = 100000;

  for (size_t i = 0; i < week; i++) {
    debt = weeklyAdd(debt);
  }

  return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
  int n;
  double num=100000.0;
  cin>>n;
  for(int i=0;i<n;i++){
    num=num*1.05;
    if((int)num%1000>0){
      num=(int)num-(int)num%1000;
      num+=1000.0;
    }
  }
  cout<<(int)num<<endl;
  return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
#define FOR(i,x,n) for(int i=x; i<(n); i++)
#define ALL(n) begin(n),end(n)
#define MOD (1000000007)
#define INF (1e9)
#define INFL (1e18)

typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
template<class T>using arr=vector<vector<T>>;
template<class T>void pr(T x){cout << x << endl;}
template<class T>void prvec(vector<T>& a){rep(i, a.size()-1){cout << a[i] << " ";} cout << a[a.size()-1] << endl;}
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

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

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

int n;
double rent = 100000;

int main()
	{
		cin>>n;
		for(int i=0;i<n;i++)
		{
		 rent = rent * (1.05/1000) ;
		 rent = rent + 0.9;
		 rent = (int)rent;
		 rent *= 1000;
		}
		printf("%.0lf\n",rent);
		return 0;
	}

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

using namespace std;

int main(){

    int n;
    int debt = 100000;
    while(cin >> n){
        for(int i=0;i<n;i++){
            debt += debt * 0.05;
            if(debt%1000 != 0){
                debt = debt - debt%1000 + 1000;
            }
        }
        cout << debt << endl;
    }
    return 0;
}

C++: #include<iostream>
#include<iomanip>
#include<cmath>
#include<string>
#include<vector>
#include<list>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<stack>
using namespace std;
typedef long long ll;
#define fi first
#define se second
#define mp make_pair
#define rep(i, n) for(int i=0;i<n;++i)
#define rrep(i, n) for(int i=n;i>=0;--i)
const int inf=1e9+7;
const ll mod=1e9+7;
const ll big=1e18;
const double PI=2*asin(1);

int main() {
  int N;
  cin>>N;
  ll ans = 100000;
  for(int i=0;i<N;++i){
    ans = ans*105/100;
    if(ans%1000>0){
      ans -= ans%1000;
      ans += 1000;
    }
  }
  cout<<ans<<endl;
}

C++: #include <math.h>
#include <iostream>

int age(int t) {
	return ceil((double) t / 10000) * 10000;
}

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

	int loan = 100000;
	int aaa;
	for (int i = 0; i < n; i++)
		aaa = age(loan + loan * 0.05 * n);

	std::cout << aaa << std::endl;
}