Go: package main

import (
        "fmt"
        "math"
)

var interests [101]float64

func main() {
        var m int
        fmt.Scanf("%d", &m)
        fmt.Printf("%d\n", int(math.Ceil(interest(m)*10))*10000)
}

func interest(m int) (i float64){
        if interests[m] > 0 {
                return interests[m]
        }

        if m == 0 {
                interests[0] = 1.0
                return interests[0]
        }

        if m == 1 {
                interests[1] = 1.05
                return interests[1]
        }
        interests[m] = interest(m/2) * interest(m/2) * interest(m%2)
        return interests[m]
}

C++: #include <iostream>

using namespace std;

int debtAfterWeek(int n)
{
	int debt = 100000;
	int last3digits;
	for (int i = 0; i < n; i++)
	{
		debt *= 1.05;
		last3digits = debt % 1000;
		debt -= last3digits;
		if (last3digits != 0)
		{
			debt += 1000;
		}
	}
	return (int)debt;
}

int main()
{
	int n;
	cin >> n;
	cout << debtAfterWeek(n) << endl;
	return 0;
}

C++: p=100000;main(a){for(scanf("%d",&a);a--;p=(p/1000+(p%1000?1:0))*1000)p+=p/20;printf("%d",p);}

C++: #include<iostream>

using namespace std;

double money = 100000;

int i;

int main()
{
	cin>>i;
	for(i;i>0;--i)
	{
		money *= 1.05;
		money = (long)(money/1000+0.9)*1000;
	}
	printf("%.0lf\n",money);
}

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

int main() {
    clock_t cTimeStart, cTimeEnd;
    cTimeStart = clock();           // 現在時刻
    long long total=100000;
    int N;
    cin>>N;
    for(int i=0;i<N;++i){
    	total=total*1.05;
    	if(total%1000>0)total=(total/1000+1)*1000;
    }
    cout<<total<<endl;
    cTimeEnd = clock();           // 現在時刻
//    cout<< "処理時間:" <<(cTimeEnd - cTimeStart)/1000 << "[ms]" << endl;

	return 0;
}

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

int main() {
	int n;
	cin >> n;
	long s = 100000;
	for (int i = 0; i<n; i++) {
		s = s * 1.05;
		int s1 = s % 1000;
		if (s1 != 0) {
			s = s - s1 + 1000;
		}
	}
	cout << s << "\n";
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
  int n,i;
  int temp;
  double ans = 100;
  cin >> n;
  for(i = 0;i < n;i++){
    ans *= 1.05;
    temp = (int)ans;
    if((double)temp != ans){
      ans = (double)temp + 1;
    }
  }
  cout << ans << "000" << endl;
  return(0);
}

C++: #include<iostream>

using namedspace std;

int week(int money){
	money = money + money * 0.05;
	money = money + 1000 - ( money % 1000 );
	return money;
}

int main(void){
	int n;
	int money = 100000;
	cin >> n;
	for(int i = 0;i < n;i++){
		money = week(money);
	}

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

C++: #include<stdio.h>
#include<iostream>
using namespace std;
int main(){
  int n=0;
  int m=100000;
  cin>>n;
  for(int i=0;i<n;i++){
	  m=m*1.05;
	  if(m%1000!=0){
		  m=m+999;
		  m=m/1000;
		  m=m*1000;
	  }
  }
  cout<<m<<endl;

  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;
        ret = ceil( ret / 1000 ) * 1000;
        n--;
    }
    printf( "%.1f", ret  );
    return 0;    
}

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

C++: #include <bits/stdc++.h>
#include <vector>
using namespace std;
int n, utang, bunga;
int main(){
	utang = 100000;
	cin >> n;
	for(int i = 1; i <= n; i++){
		bunga = utang * 5 / 100;
		if(bunga % 1000 == 0)
			bunga = bunga/1000 * 1000;
		else
			bunga = bunga/1000 * 1000 + 1000;
		
		utang = utang + bunga;
	}
	cout << utang << "\n";
	return 0;
}

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

using namespace std;

static int ROUND = 1000;

int weeks;
int loan = 100000;
int rishi = loan * 0.05;
int temp;

int main(){
  scanf("%d", &weeks);
  while (weeks != 0){
      loan = loan*1.05;
      loan = loan % ROUND != 0 ? (int(loan/ROUND) +1)*ROUND : loan;
      weeks--;
  }
 cout << loan << endl;
 return 0;   
}

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;
	double money;
	float interest_rate;
	debt = 100000;
	interest_rate = 1.05;
	cin >> n;

	debt = interest(debt, interest_rate, n);

	money = (double) debt / 10000;		// 1000?????\???????°???°?????\??????

	money = ceil(money) * 10000;??????????????????// ?°???°?????\?????????????????????????????????

	debt = money;

	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>
using namespace std;
??
int main() {
????????????int n,x;
      x = 100000;
????????????cin >> n;
????????????for (int i=0;i<n;i++) {
????????????????????????x = 1.05*x;
????????????????????????if (x%1000!=0) {
????????????????????????????????????x = x + (1000-x%1000);
????????????????????????}
????????????}
????????????cout << x;
????????????return 0;
}

C++: #include <iostream>

using namespace std;

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

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

int main() {
	long m,n=100000;
	cin>>m;
	for(int i=0;i<m;i++){
		n*=21;
		n/=20;
		
		if(n%1000!=0){
			n+=(1000-n%1000);
		}
	}
	cout<<n<<endl;
	return 0;
}

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

int main()
{
    int n = 0;                                          //n習慣
    double debt = 100000;                               //10万借金

    cin >> n;                                           //入力

    for( int i = 0; i < n; i++ )                        //n回繰り返す
    {
        debt = debt * 1.05;                             //5%増える
        if( (int)debt % 1000 != 0 )                     //1~999は切り上がる
            debt = debt - (int)debt % 1000 + 1000;
    }

    cout << debt;

    return 0;
}

C++: /*****include*****/
#include <iostream>
#include <fstream>

/*****デバッグ定義*****/
//#define DEBUG
/*****マクロ定義*****/

/*****名前空間*****/
using namespace std;

/*****グローバル変数置き場*****/

/*****その他関数置き場*****/

/*****main関数*****/
int main(){
	/*****ファイルオープン*****/
#ifdef DEBUG
	ofstream fout("output.txt");
	ifstream fin("input.txt");
	if(!fout || !fin){
		cout << "Can't open the file.\n";
		return;
	}
#endif
	/*****変数置き場*****/
	int year;
	long int money = 100000;
	/*****処理部*****/
	cin >> year;
	for(int i=1;i<=year;i++){
		money += money*0.05;
	}
	if(money % 1000 > 0){
		money /= 1000;
		money++;
		money *= 1000;
	}
	cout << money << endl;
	/*****処理終了後*****/
#ifdef DEBUG
	fout.close();
	fin.close();
#endif
	return 0;
}