Go: package main

import (
	"bufio"
	"os"
	"strconv"
	"math"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func nextInt() int {
	scanner.Scan()
	i, e := strconv.Atoi(scanner.Text())
	if e != nil {
		panic(e)
	}
	return i
}

func calc(n int) float64 {
	tmp := 100000.0
	for i := 0; i < n; i++ {
		tmp *= 1.05
		tmp = ceil(tmp, -3)
	}
	return tmp
}

func ceil(f float64, places int) float64 {
	shift := math.Pow(10, float64(places))
	return math.Ceil(f*shift)/shift
}

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

C++: #include <iostream>

using namespace std;

int main()
{
    unsigned long long debt = 100000;
    int n;
    
    for (int i = 0; i < n; ++i) {
        debt *= 1.05;
        const int mod = debt % 1000;
        if (mod != 0) {
            debt -= mod - 1000;
        }
    }
    cout << debt << endl;
    
    return 0;
}

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

int main(){

  int n, a;
  int money = 100000;

  cin >> n;
  for(;0<n;n--){
    money = (float)money * (float)1.05;
    a = money / 1000;
    if(money-a*1000 != 0)
      money = (a+1)*1000;
  }
    cout << money << endl;

  return 0;
}

C++: #include<iostream>
int main(){int w,m=100000;for(std::cin>>w;w--;m=(m+999)/1000*1000)m+=m*5/100;std::cout<<m<<'\n';}

C++: #include <bits/stdc++.h>
using namespace std;
 
int main() {
  int n; cin >> n;
  int num = 100000;
  for ( int i = 0; i < n; i++ ) {
    int result = (int)(num*1.05) % 1000;
    if ( result == 0 ) num *= 1.05;
    else num = num * 1.05 + 1000 - result;
  }
  cout << num << 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;
	printf("%d\n",n);
	i=n%10000;
	printf("%d\n",i);
	if(i!=0){
	    n=n+i;
	}
	printf("%d\n",n);
	return 0;
}

C++: #include <iostream>

using namespace std;

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

C++: #include<iostream>
#include<cstring> 
using namespace std;
int main()
{
    int n,s=100000;
    cin>>n;
    n++;
    while(n--)
    {
    	s+=5000;
	}
	cout<<s<<endl;
}

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<utility>
#include<vector>
#include<cmath>
#include<cstring>
#include<cstdio>
#define loop(i,a,b) for(int i=a;i<b;i++) 
#define rep(i,a) loop(i,0,a)
#define rp(a) while(a--)
#define pb push_back
#define mp make_pair
#define all(in) in.begin(),in.end()
const double PI=acos(-1);
const double EPS=1e-10;
using namespace std;
typedef long long ll;
typedef vector<int> vi;
bool h[1000010]={false};
int main(){
	int n;
	cin>>n;
	int out=100000;
	rep(i,n){
		out*=1.05;
		if(out%1000)out=out-out%1000+1000;
	}
	cout<<out<<endl;
}

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

int main(void)
{
	int base = 100000;
	
	int n;
	std::cin >> n;
	
	for (int i = 0; i < n; i++) {
		base = 1.05 * base;
    if (base % 1000 != 0) {
      base = (base / 1000) * 1000 + 1000;
    }
    else {
      base = (base / 1000) * 1000;
    }
	}
  
  std::cout << base << std::endl;
}

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

int main() {
	double a = 100000;
	int N;
	cin >> N;
	for (int i = 0; i < N; i++) {
		a *= 1.05;
		if ((a / pow(10, 3)) != 0) {
			a /= pow(10, 3);
			a = (int)a;
			a *= pow(10, 3);
			if (i == N - 1) {
				break;
			}
			a += pow(10, 3);
		}
	}
	cout << (int)a << endl;
	return 0;
}

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

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

    long loan = 100000;

    for (int i = n; i > 0; i--) {
        loan = ceil((loan * 1.05) / 1000.0) * 1000;
    }

    cout << loan << endl;
}

C++: #include <iostream>

using namespace std;

void ceil(int* money){
        if(int r = *money%1000){
                *money += 1000-r;
        }   
}
void interest(int* money){
        *money += *money*5/100;
}

int main(){
        int n;
        cin >> n;
        int money = 100000;
        for(int i = 0 ; i < n ; i++){
                interest(&money);
                ceil(&money);
        }   
        cout << money << endl;
}

C++: #include<bits/stdc++.h>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;


int main(){
    int n,debt=100000;
    scanf("%d",&n);
    for (int i=0;i<n;i++) {
        debt=debt+(debt/20);
        if (debt%1000>0) debt=debt/1000*1000+1000;
    }
    printf("%d\n",debt);
    return 0;
}

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

#define rep(i, n) for (int i = 0; i < int(n); i++)
#define rrep(i, n) for (int i = int(n) - 1; i >= 0; i--)
#define reps(i, n) for (int i = 1; i <= int(n); i++)
#define rreps(i, n) for (int i = int(n); i >= 1; i--)
#define repc(i, n) for (int i = 0; i <= int(n); i++)
#define rrepc(i, n) for (int i = int(n); i >= 0; i--)
#define repi(i, a, b) for (int i = int(a); i < int(b); i++)
#define repic(i, a, b) for (int i = int(a); i <= int(b); i++)
#define each(x, y) for (auto &x : y)
#define all(a) (a).begin(), (a).end()
#define bit(b) (1ll << (b))

using namespace std;

using i32 = int;
using i64 = long long;
using u64 = unsigned long long;
using f80 = long double;
using vi32 = vector<i32>;
using vi64 = vector<i64>;
using vu64 = vector<u64>;
using vf80 = vector<f80>;
using vstr = vector<string>;

inline void yes() { cout << "Yes" << '\n'; exit(0); }
inline void no() { cout << "No" << '\n'; exit(0); }
inline i64 gcd(i64 a, i64 b) { if (min(a, b) == 0) return max(a, b); if (a % b == 0) return b; return gcd(b, a % b); }
inline i64 lcm(i64 a, i64 b) { return a / gcd(a, b) * b; }
inline u64 xorshift() { static u64 x = 88172645463325252ull; x = x ^ (x << 7); return x = x ^ (x >> 9); }
void solve(); int main() { ios::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(16); solve(); return 0; }
template <typename T> class pqasc : public priority_queue<T, vector<T>, greater<T>> {};
template <typename T> class pqdesc : public priority_queue<T, vector<T>, less<T>> {};
template <typename T> inline void amax(T &x, T y) { if (x < y) x = y; }
template <typename T> inline void amin(T &x, T y) { if (x > y) x = y; }
template <typename T> inline T power(T x, i64 n, T e = 1) { T r = e; while (n > 0) { if (n & 1) r *= x; x *= x; n >>= 1; } return r; }
template <typename T> istream& operator>>(istream &is, vector<T> &v) { each(x, v) is >> x; return is; }
template <typename T> ostream& operator<<(ostream &os, vector<T> &v) { rep(i, v.size()) { if (i) os << ' '; os << v[i]; } return os; }
template <typename T, typename S> istream& operator>>(istream &is, pair<T, S> &p) { is >> p.first >> p.second; return is; }
template <typename T, typename S> ostream& operator<<(ostream &os, pair<T, S> &p) { os << p.first << ' ' << p.second; return os; }

void solve() {
  int n; cin >> n;
  i64 ans = 100000;
  rep(i, n) {
    ans = ans * 105 / 100;
    ans = (ans + 999) / 1000 * 1000;
  }
  cout << ans << '\n';
}

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, money;
    float interest_rate;
    debt = 100000;
    interest_rate = 1.05;
    cin >> n;
 
    debt = interest(debt, interest_rate, n);
 
    money = debt % 1000;

	if (money > 0)
	{
		debt = debt - money + 1000;
	}

    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++: #include <iostream>
#include <math.h>
using namespace std;
int main(){
	int n , i , w , h ;
	double x , y , z;
	cin >> n ;
	x = 100000;
	for( i=1 ; i<=n ; i++ ){
		x = x*1.05;
		w = x ;
		x = w/100;
		x = x/10;
		x = ceil( x );
		x = x*1000 ;
	}
	y = x ;
	cout << y << endl;
}