Go: package main

import "fmt"

func roundUp100(dept float64) float64 {
	iDept := int(dept)
	if iDept-(iDept/1000*1000) != 0 {
		iDept = ((iDept / 1000) + 1) * 1000
	}
	return float64(iDept)
}

func main() {
	var week int
	fmt.Scan(&week)

	dept := 100000.0
	for i := 0; i < week; i++ {

		dept *= 1.05
		dept = roundUp100(dept)
	}

	fmt.Println(dept)
}

//問題文が理解できていない感

C++: #include<algorithm>
#include<functional>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<bitset>

#define all(c) (c).begin(), (c).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define pb(e) push_back(e)
#define mp(a, b) make_pair(a, b)
#define fr first
#define sc second

typedef unsigned long long ull;
typedef long long ll;

const int INF=100000000;
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};

using namespace std;

typedef pair<int ,int > P;


int main()
{
	int n;

	while(cin>>n)
	{
		int m=100000;

		rep(i,n)
		{
			m*=1.05;
			if(m%1000!=0)
			{
				m-=m%1000;
				m+=1000;
			}

		}
		cout<<m<<endl;

	}
	


	return 0;
}

C++: #include <map>
#include <string>
#include <iostream>
#include<vector>
#include <set>
#include<math.h>
#include<algorithm>

using namespace std;

int main()
{
	int n, amount=100;
	cin >> n;
	
	for (int i=0; i<n; i++)
	{
		amount = amount * 1.05 + 0.999;
	}
	
	cout << amount*1000 << endl;
}

C++: #include <iostream>

int main() {
  int debt = 100000;
  int weeks; std::cin >> weeks;
  for(int i=0; i<weeks; i++) {
    debt = debt*1.05;  
    debt = (debt+999)/1000*1000;
  }  
  std::cout << debt << std::endl; 
}

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

const static double	de_PI	= 3.14159265358979323846;
const static int	de_MOD	= 1000000007;
const static int	de_MAX	= 999999999;
const static int	de_MIN = -999999999;

int main(void) {

	//std::ifstream in("123.txt");	std::cin.rdbuf(in.rdbuf());

	int a = 0;
	std::cin >> a;

	double n = 100000;
	for (int i = 0; i < a; i++) {
		n = n*1.05;
		n = static_cast<int>((n / 1000) + 0.999);
		n = n * 1000;
	}

	std::cout << n << std::endl;
}

C++: #include <algorithm>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <cctype>
#include <iostream>
#include <set>
#include <string>
#include <queue>
#include <map>
using namespace std;
int size(string x){
	string::size_type size=x.size();
	return size;
}
#define fu(l,k) for(int i=l;i<k;i++)
#define fd(l,k) for(int i=l;i>k;i--)
#define fi first
#define se second
typedef  vector<string> vs;
typedef  vector<int> vi;
double pi(){
	return M_PI;
}
typedef set<int> set_i;
typedef set<string> set_s;
int main(){
	int n;
	int ss=100000;
	cin>>n;
	fu(0,n){
		ss=ss*1.05;
		if(ss%1000!=0) ss=ss/1000*1000+1000;
	}
	cout<<ss<<endl;
}

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

int main(){
        int n;
        int mo = 100000;

        cin >> n;
        for(; n > 0; n--){
                mo = mo * 1.05;
                if(mo % 1000 != 0)
                        mo = mo - mo % 1000 + 1000;
        }
        cout << mo << endl;
}

C++: #include <iostream>

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

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

using namespace std;

int main() {
    int n, m = 100;
    cin >> n;
    while (n--) {
        m = ceil(m * 1.05);
    }
    cout << m * 1000 << endl;

    return 0;
}

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

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

    while (n--) {
        debt *= 1.05;
        debt = (debt + 999) - (debt + 999) % 1000;
    }

    cout << debt << endl;
    
    return 0;
}

C++: #include <stdio.h>

int main(void){
int n;
scanf("%d",&n);
int coin=100000;
for(int m=0;m<n;m++){
coin+=coin*0.05;
coin=(coin/1000)+(coin%1000)>0? 1000:0;
}
printf("%d\n",coin);
return 0;
}

C++: 
#include <iostream>
#include <stdlib.h>
using namespace std;
int search(int lim,int money)
{
    money=money*1.05;	
    if(money%1000>0)
    {
        money/=1000;
		money+=1;
        money*=1000;
    }
    if(lim==1)
        return money;	
    search(lim-1,money);
}
int main()
{    
	int n;     
    cin >> n ;	
    int ans = search(n,100000);	
    cout << ans << endl;
}

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

int main()
{
	int money = 100000;
	int n;
	cin >> n;
	while (n--)
	{
		money *= 1.05;
	}
	if (money % 10000 != 0)
	{
		money -= (money % 10000);
		money += 10000;
	}
	cout << money << endl;

	return 0;
}

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

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

C++: //http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0007
#include <iostream>
using namespace std;
int main() {
	cin.tie(0); ios::sync_with_stdio(false);
	int n; cin >> n;
	double debt = 100000;
	for (int i = 0; i < n;i++) {
		debt *= (1.05);
	}
	if ((int)debt % 10000 != 0) {
		debt = ((int)debt / 10000) * 10000 + 10000;
	}
	cout << (int)debt << endl;
}

C++: #include <iostream>
#include <cmath>
using namespace std;
int main() {
  float sum;
  int n;
  while (cin >> n) {
    sum = 100000;
    for (int i = 0; i < n; i++) {
      sum *= 1.05;
      sum = ceil(sum / 1000) * 1000;
    }
    cout << (int)sum << 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 << pay * 1000 << endl;
}

C++: #include<iostream>
#include<string>
#include<algorithm>
using namespace std;
main(){
	int a=100000,n;
	cin>>n;
	for(int i=1;i<=n;++i){
		a*=1.05;
		if(a%1000>0){
			a/=1000;
			a++;
			a*=1000;
		}
	}
	cout<<a<<endl;

}

C++: #include <iostream>

#define N (10000)

int debt(const int amount, const int weeks)
{
    int ret;
    int fraction; /* 1000円未満額の端数 */
    
    ret = amount;
    for (int i = 0; i < weeks; i++){
        // 利子計算
        ret *= 1.05;
    }
    
    fraction = ret % N;
    
    ret /= N;  // 切り捨てて
    if (fraction != 0){
        // 端数があるなら
        // 切り上げる
        ret++;
    }
    ret *= N;
    
    return ret;
}

int main()
{
    int n;
    
    std::cin >> n;
    
    std::cout << debt(100000, n) << std::endl;
    
    return 0;
}

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

int main() {
  int n;
  cin >> n;
  int A=pow(10,5);
  for (int i=0; i<n; i++) {
    A*=(1.05);
  }
  
  printf("%d\n",(A+9999)/10000*10000);
  return 0;
}

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

using namespace std;

int main(){
    int weeks;
    double money = 100.0;
    cin >> weeks;

    for(int i = 0; i < weeks; i++) {
        money = ceil(money * 1.05);
    }

    cout << int(money*1000) << endl;

    return 0;
}

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

int Up(int a){
	return (a / 1000) * 1000 + 1000;
}

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

C++: #include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
int main(){
  int n,ten1=100000,ten2;
  cin>>n;
  rep(i,n){
    ten1+=ten1/20;
  }
  ten2=ten1/10000*10000;
  if(ten1!=ten2)ten2+=10000;
  cout<<ten2<<endl;
}

C++: #include<stdio.h>
int main(void)
{
	int n;
	int i;
	int s;
	s=100000;

	while(scanf("%d",&n)!=EOF){
		for(i=0;i<n;i++){
			s=s*1.05;
			if(s%1000!=0){
				s=s-s%1000;
				s=s+1000;
			}
		}
		printf("%d\n",s);
	}
	return 0;
}