Go: package main
import (
	"fmt"
	"os"
	"strconv"
	"bufio"
	"math"
)

var sc = bufio.NewScanner(os.Stdin)

func main(){
	sc.Split(bufio.ScanWords)
	n := nextInt()
	ans := calc(n)
	fmt.Println(int(ans))	// intにしないと指数つき表現になってしまう
}

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 next()string{
	sc.Scan()
	return sc.Text()
}

func nextInt()int{
	a, _ := strconv.Atoi(next())
	return a
}

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

int calcDebt(int debt){
	double tmp = debt * 1.05;
	int result = (int) ceil(tmp);
	if(result % 1000 == 0){
		return result;
	}else{
		return (result / 1000 + 1) * 1000;
	}
}
int main() {
	int result = 100000;
	int n;
	scanf("%d", &n);
	for(int i=0; i<n; i++){
		result = calcDebt(result);
	}
	printf("%d\n", result);
	return 0;
}

C++: //#define _USE_MATH_DEFINES
#include <iostream>
//#include <stdio.h>
//#include <iomanip>
#include <vector>
//#include <string>
//#include <algorithm>
//#include <functional>
//#include <cmath>

using namespace std;


long money(long m,int n){
	//5%?????? + 1000??????????????????
	const int u = 1000;

	if (n <= 0){
		return m;
	}
	else{
		m = m * 1.05;
		m = (m + u - 1) / u * u;
		n--;
		money(m, n);
	}
	
}


int main(){

	int n;
	long m = 100000;

	cin >> n;

	m = money(m, n);


	cout << m << endl;


	return 0;
}

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

int main(void){
	int l = 100000;
	float tl = 0.0;
	int n = 0;
	scanf("%d", &n);
	for(int i=0;i<n;i++){
		l = (int)(ceilf(l * 1.05f / 1000) * 1000);
	}
	printf("%d\n", l);
	return 0;
}

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

int main(int argc, char const* argv[])
{
	int debt = 100000;
	int n;
	cin >> n;

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

	return 0;
}

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

int main()
{
    int week;
    cin >> week;

    double pay = 100.0;
    for(int i = 0; i < week; i++)
    {
        pay = ceil(pay * 1.05);
    }
    cout << static_cast<int>(pay * 1000) << endl;
}

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

using namespace std;

int main(void) {
	int src = 100;
	int a;
	cin >> a;
	
	for(int i=0; i<a; i++) {
		src = ceil(src*1.05);
	}
	
	cout << src * 1000 << endl;
	
	return 0;
}

C++: #include <iostream>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <iomanip>
#include <fstream>
#include <cstdint>
#include <cmath>
#include <algorithm>
#include <utility>
#include <numeric>
#include <functional>
using namespace std;

constexpr int INF       = 1000000000;/* 1e+9a */
constexpr int MODULO    = 1000000007;

#define int long

#define REP(i,f,n) for(int i=(f); i < (n); ++i)
#define PER(i,f,n) for(int i=(n-1); i >= f; --i)

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

//----------------------------------
//----------------------------------

template<typename STL> inline void print_STL(STL c, string ab = ""){
	cout << ab << c[0];
	for(int i = 1; i < c.size(); ++i) cout << ' ' << c[i]; }

template<typename STL> inline void import_STL(STL& c, int n){
	typename STL::value_type tmp;
	for(int i = 0; i < n; ++i){	cin >> tmp; c.push_back(tmp);} }

signed main()
{
	cin.tie(0);
    ios::sync_with_stdio(false);
	int n;
	cin >> n;
	int total = 100000;
	REP(i, 0, n)
	{
		total += total / 20;
		if(total % 1000)
			total += 1000 - total % 1000;
	}
	cout << total << '\n';
}

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

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

C++: 
#include<iostream>
int main()
{
	double debt = 100000, add, p = 0.05;
	int n;
	std::cin >> n;
	for (int i = 0; i < n; i++)
	{
		add = (double)(int)(((debt * 0.05) / 1000) + 0.999) * 1000;
		debt += add;
	}
	std::cout << debt;
	return 0;
}

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

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

C++: 

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

int main(void) {
	int n;
	double sum;

	sum = 100000;

	cin >> n;

	for (int i; i < n; i++){
		sum = ceil((sum * 1.05)/1000) * 1000;
	}

	cout << (int)sum << endl;

	return 0;
}

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