Go: package main

import (
	"fmt"
	"math"
)

const (
	INTEREST float64 = 0.05
	DEBT     int     = 100000
)

func main() {
	var x int
	interestDebt := DEBT
	fmt.Scanf("%d", &x)
	for i := 0; i < x; i++ {
		interestCalc := MakeCalcInterest(float64(interestDebt)) + int(interestDebt)
		interestDebt = RoundUp(float64(interestCalc))
	}
	fmt.Printf("%d\n", interestDebt)
}

func MakeCalcInterest(x float64) int {
	return int((x * INTEREST))
}

func RoundUp(x float64) int {
	return int(math.Ceil(x*0.001) * 1000)
}

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

int main()
{
	int bor_money = 100000, n;

	cin >> n;

	for (int i = 0; i < n; i++) {
		bor_money *= 1.05;
	}
	if (5000 <= (bor_money % 10000)) {
		bor_money /= 10000;
		bor_money += 1;
		bor_money *= 10000;
	}
	else {
		bor_money /= 10000;
		bor_money *= 10000;
	}
	cout << bor_money << endl;
    return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int n;
int main(){
    cin >> n;
    int ans = 100000;
    for(int i=0; i<n+1; ++i){
        ans *= 1.05;
    }
    string s = to_string(ans);
    int n = s.size();
    for(int i=0; i<4; ++i){
        s[n-1-i] = '0';
    }
    cout << s << endl;
    return 0;
}

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

int main() {
	int n;
	double a=100000;
	cin >> n;
	for (int i = 0; i < n; i++) {
		a += a*0.05;
		if (a/1000 != int(a/1000)) {
			a = a/1000 + 1;
			a = int(a);
			a = a*1000;
		}
	}
	cout << a;
	return 0;
}

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

using namespace std;

signed main(){
    int n;
    double ret = 100000;
    scanf( "%d", &n );
    while( n > 0 ){
        ret *= 1.05;
        n--;
    }
    ret = ceil( ret / 1000 ) * 1000;
    printf( "%.1f", ret  );
    return 0;    
}

C++: //#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <math.h>
#include<algorithm>
#include <utility>
using namespace std;
int main() {
	double n, add, money = 100000;
	cin >> n;
	for (int i = 0; i < n; i++) {
		add = money*0.05;
		money += add;
	}
	int ans = money;
	if (ans % 10000 != 0) {
		ans /= 10000;
		ans *= 10000;
		ans += 10000;
	}
	cout << ans << endl;
	return 0;
}

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

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

C++: #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<vector>
#include<math.h>
#include<queue>
#include <algorithm>
#include<functional>
#include<cstdlib>
#include<cmath>


#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define CI cin >>
#define CO cout <<
#define E << endl;

using namespace std;

typedef pair<int, int> P;
typedef pair<long, long> LP;
typedef pair<int, P> PP;
typedef pair<long, LP> LPP;



int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int A = 0, B = 0, K = 0, T = 0, W = 0, N = 0, H = 0;
int n = 0;
double L = 0;
double S = 0;
double ar = 0, br = 0, cr = 0;
int answer = 0;

string C;
string sA, strB;
vector<vector<char>> map;
vector<double> num;
vector<string> str;

int sum = 0;

vector<int> value;
vector<int> weight;

int dp[110][10010];

int data_[210][2] = { -2 };

void input(void) {
	CI n;
	return;
}


int main(void) {
	input();
	long double money = 100000;
	
	for (int i = 0; i < n; i++) {
		money *= 1.05;
		if ((int)money % 1000 > 0) {
			money = money - ((int)(money) % 1000) + 1000 - (money - (double)(int)money);
		}
		
	}
	
	CO money E
	

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(void)
{
    int n,c,A=0,b,a1,b1,A1=100000;
    cin>>n;
    for(int i=0;i<n;i++){
        b1=A1*0.05;
        c=b1;
        b1/=1000;
        a1=b1*1000;
        if(c%1000!=0)a1+=1000;
        A1+=a1;
    }        cout<<A1<<"\n";
}

C++: #include<iostream>
using namespace std;
int main(){
  int n,solve = 100000;
  cin >>n;
  while(n--){
    solve = solve*1.05;
    if(solve%1000 > 0) solve = solve/1000*1000+1000;
  }
  cout <<solve<<endl;
  return 0;
}

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

int floorUp(int num)
{
  if (num == 0) return 0;
  if (num < 1000) return 1000;

  int q, r;
  q = num / 1000;
  r = num - q * 1000;

  if (r == 0) return q * 1000;

  return (q + 1) * 1000;
}

int main()
{
  int n, i, ans;

  cin >> n;

  ans = 100000;

  for (i = 0; i < n; i++)
  {
    ans = floorUp(ans * 1.05);
  }

  cout << ans << endl;

  return 0;
}

C++: #include <stdio.h>
int main()
{
int n,i;
int ans=100000;
scanf("%d",&n);
for(i=0;i<n;i++){
ans *= 1.05;
ans = ((ans+999)/1000)*1000;
}
printf("%d\n",ans);
return 0;
}

C++: #include <iostream>
# include <stdio.h>
# include <math.h>
using namespace std; 
 
int main()
{   int n; cin>>n; float newamount=100000;  

	for(int i=0;i<n;i++){
    float copy=newamount*21/20;
     copy=ceil(copy/1000);
     copy=copy*1000;
     newamount=copy;
	}
	cout<<ceil(newamount);
    return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
 int n,m=1e5;
 for(cin>>n;n>0;n--)
  m = (m*105/100+999)/1000*1000;
 cout << m << endl;
 return 0;
}

C++: #include <iostream>
typedef unsigned long long ULL;
using namespace std;
inline ULL round(ULL t)
{
    return ((ULL)((double)t / 10000 + 0.5))*10000;
}
int main()
{
    int t;
    ULL res = 100000;
    cin >> t;
    while(t--)
    {
        res *= 1.05;
    }
    res = round(res);
    cout << res << endl;
    return 0;
}

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

int main() {
	// your code goes here
	int n,money;
	cin >> n;
	money=n;
	for(int i=0;i<money;i++){
		n*=1.05;
		n+=999;
		n-=n%1000;
	}
	cout << n;
	return 0;
}

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

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