Go: package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	for scanner.Scan() {
		n, _ := strconv.Atoi(scanner.Text())
		debt := float64(100000)
		for i:=1; i<=n; i++ {
			debt = debt*1.05
			debt = math.Ceil(debt*0.001) * 1000
		}		
		fmt.Println(int(debt))
	}
}

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

C++: #include <iostream>

using namespace std;

int main() {
	int n, money = 100000;
	cin >> n;

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

	cout << money-1000 << endl;

	return 0;
}

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

#include <iostream>
using namespace std;

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

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

//NAMESPACE
using namespace std;

//CONSTANT
const int64_t INF=INT64_MAX;

//FAST I/O
void init(){cin.tie(0);ios::sync_with_stdio(false);}
//----------------------------------------------------

int64_t solve(int n){
  int64_t dept=100000;

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

  return dept;
}

int main(){
  init();

  int64_t n;
  cin >> n;

  cout << solve(n) << endl;

  return 0;
}

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

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

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

  cout << money << endl;

  return 0;
}

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

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

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

int main(){
	double money = 100000;
	int n;
	cin >> n;
	for( int i=0; i<n; i++ ){
		money = (double)money * 1.05;
		int up = money / 1000;
		if( (int)(money - up) > 0 )
			money = (up+1)*1000;
		else
			money = up * 1000;

	}
	cout << money << endl;
	return 0;
}

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

int main(){
    int m;
    cin >> m;
    int 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 <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;

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

C++: #include <iostream>

using namespace std;

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