Go: package main

import "fmt"

func main() {
	var v float64
	for {
		i, _ := fmt.Scan(&v)
		if i == 0 {
			break
		}
		t := v / 9.8
		y := 4.9 * t * t

		N := 0
		for {
			N++
			if height := 5*N - 5; float64(height) > y {
				fmt.Println(N)
				break
			}
		}
	}
}

C++: #include<iostream>
using namespace std; 
int main(){
  double v,y,t;
  int i;
  while(cin>>v){
    t=v/9.8;
    y=4.9*t*t;
    for(i=0;y>=0;i++){
      y-=5.0;
    }
    cout<<i+1<<endl;
    
  }
}

C++: #include<stdio.h>

int main(){
	double a;
	
	while(~scanf("%lf",&a)){
		double t=a/9.8;
		double x=t*t*4.9;
		int ans=(x+9.999999)/5;
		printf("%d\n",ans);
	}
}

C++: // -*- coding: utf-8 -*-
// Last-Updated : <2014/06/19 00:36:03 by samui>

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <climits>
#define MP(a, b) make_pair(a, b)
#define X first
#define Y second
#define rep(i,n) for(int (i) = 0; (i) < (int)(n); ++(i))
#define rer(i,l,n) for(int (i) = l; (i) <= (int)(n); ++(i))
#define reu(i,l,n) for(int (i) = l; (i) < (int)(n); ++(i))
template<typename T,typename U> inline void amin(T &x,U y){ if(y<x) x = y;}
template<typename T,typename U> inline void amax(T &x,U y){ if(x<y) x = y;}
template<typename TYPE,std::size_t SIZE>
std::size_t len(const TYPE (&array)[SIZE]){return SIZE;}

int main(int argc, char *argv[])
{
  float a;
  while(std::cin>>a){
    abc(a);
  }
  return 0;
}
int abc(float x)
{

  float t = x/9.8;
  float y = t*t*4.9;;
  float ans = int((y+5)/5);
  float a = (y+5)/5-ans;
  if(a>0)
    ans++;
  std::cout<<ans<<std::endl;


  return 0;
}

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

/*****デバッグ定義*****/
//#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 b_v;
	int v_sq;
	int n;
	/*****処理部*****/
	for(;;){
		cin >> b_v;
		if(b_v == 0)	break;
		n = 0;
		do{
			n++;
			v_sq = 19.6 * (5 * n - 5);
		}while(v_sq < b_v*b_v);
		cout << n << endl;
	}
	/*****処理終了後*****/
#ifdef DEBUG
	fout.close();
	fin.close();
#endif
	return 0;
}

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

using namespace std;

int main()
{
    double input;
    double t;
    int n;

    while (cin >> input) {
        t = input / 9.8;
        n = ceil(0.98 * t * t + 1);

        cout << n << endl;
    }

    return 0;
}

C++: #include <iostream>
#include <cstdio>
using namespace std;
int LeastHeight(int v) {
  double y;
  int N;
  y = v * v / 19.6;
  N = int((y + 5) / 5 + 1);
  return N;
}
void data() {
  double v, y;
  int N, t;

  printf("t\tv\ty\tN\n");
  for(t = 1; t <=10; ++t) {
	v = 9.8 * t;
	y = v * v / 19.6;
	N = int((y + 5) / 5 + 1);
	printf("%d\t%.2f\t%.2f\t%d\n", t, v, y, N);
  }
}
int main() {
  double v;
  while(cin >> v) {
	cout << LeastHeight(v) << endl;
  }
  //data();
  return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main() {
	double d;
	double EPS = 1e-10;
	while(scanf("%lf", &d) == EOF) {
		cout << ceil((4.9 * pow(d / 9.8, 2.0) + 5.0 + EPS) / 5) << endl;
	}
	return 0;
}

C++: #include<string>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<sstream>
#include<functional>
#include<map>
#include<stack>
#include<set>
#include<cmath>

#define REP(i,s,e) for(int i=int(s);i<=int(e);i++)
#define rep(i,n) for(int i=0;i<int(n);i++)

#define EPS 1e-6

using namespace std;

int main(){

	double v;
	double g=9.8;

	while(true){

	cin >> v;

	if(cin.fail()) break;

	cout << ceil((v*v)/(10*g)+1-EPS) << endl;

	}

	return 0;
}

C++: #include<algorithm>
#include<bitset>
#include<cassert>
#include<cfloat>
#include<climits>
#include<cmath>
#include<deque>
#include<functional>
#include<iomanip>
#include<iostream>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<string>
#include<unordered_map>
#include<unordered_set>
#include<utility>
#include<vector>

using namespace std;

using lint = long long;
using P = pair<int, int>;
using LLP = pair<long long, long long>;

#define REP(i, x, n) for(int i = (x), i##_len = (int)(n) ; i < i##_len ; ++i)
#define rep(i, n) for(int i = 0, i##_len = (int)(n) ; i < i##_len ; ++i)
#define reps(i, n) for(int i = 1, i##_len = (int)(n) ; i <= i##_len ; ++i)
#define rrep(i, n) for(int i = (int)(n) - 1 ; i >= 0 ; --i)
#define rreps(i, n) for(int i = (int)(n) ; i > 0 ; --i)
#define SORT(x) sort((x).begin(), (x).end())
#define SORT_INV(x) sort((x).rbegin(), (x).rend())
#define REVERSE(x) reverse((x).begin(), (x).end())
#define TWINS(x) cout << ((x) ? "Yay!" : ":(") << '\n'
#define endl '\n'

constexpr int IINF = (1 << 30) - 1;
constexpr long long LLINF = 1LL << 61;
constexpr double EPS = 1e-10;

constexpr int dx4[] = {1, 0, -1, 0}, dy4[] = {0, 1, 0, -1};
constexpr int dx8[] = {1, 1, 0, -1, -1, -1, 0, 1}, dy8[] = {0, -1, -1, -1, 0, 1, 1, 1};

template<typename T>
bool chmax(T& a, T b){
    if(a < b){
        a = b;
        return true;
    }
    return false;
}

template<typename T>
bool chmin(T& a, T b){
    if(b < a){
        a = b;
        return true;
    }
    return false;
}

template<typename T>
T meguru_search(T ok, T ng, function<bool(T)> check){
    while(max(ok, ng) - min(ok, ng) > T(1)){
        T mid = (ok + ng) / T(2);
        if(check(mid)){
            ok = mid;
        }else{
            ng = mid;
        }
    }
    return ok;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(10);

    double v;
    while(cin >> v){
        double t = v / 9.8;
        double y = 4.9 * t * t;
        int ans = ceil(y * 0.2 + 1.0);
        cout << ans << endl;
    }

    cout << flush;

    return 0;
}

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

int
main(void)
{
	char line[80];
	double v0;

	while (fgets(line, sizeof line, stdin)) {
		if (sscanf(line, "%lf", &v0) != 1) {
			return 1;
		}

		int n = 1;
		while (n > 0) {
			double y = 5.0 * n - 5.0;
			double t = sqrt(y/4.9);
			double v = 9.8 * t;
			if (v >= v0) {
				printf("%d\n", n);
				break;
			}
			n++;
		}
	}

	return 0;
}

C++: #include "bits/stdc++.h"
using namespace std;

int main(){
	double v;
	while(cin>>v){
		double t=v/9.8;
		double y=t*t*4.9;
		
		cout<<(int)y/5+2<<endl;
	}
	return 0;
}

C++: #include <stdio.h>

int main()
{
	int n;
	double v, y;

	while(scanf("%lf", &v) != EOF){
		y = v*v/19.6;

		n = (int)((y+5)/5);

		if((double)n < (y+5)/5) n++;
	
		printf("%d\n", n);
	}

	return 0;
}

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

int main(){
  double v;
  while(~scanf("%lf",&v))
    printf("%d\n",(int)ceil(v*v/98+1));
}

C++: main(){float v;for(;~scanf("%f",&v);printf("%.f\n",v*v/98+1.5));}

C++: #include <iostream>

using namespace std;

int main()
{
    double v,y,t;
    int n;
    while(cin >> v)
    {
        t = v / 9.8;
        y = 4.9 * t * t;
        double n1 = (y + 5)/5;
        n = (n1 + 0.5);
        cout << n << endl;
    }
    return 0;
}

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

int main(void){

    int i = 0;;
    double v,y;
    
    while(cin >> v){

        y = v * v / 19.6;

        while(1){

            if((5 * i - 5 ) > y){
                cout << i << endl;
                break;
            }
            i++;
        }
       
    }
    return 0;
}

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

int main()
{
	double get ;
	double high ;
	int sol ;

	while( cin >> get )
	{
		high = 4.9 *(get/9.8)*(get/9.8) ;

		int tmp = high ;
		if( tmp %5 == 0 )
		{
			sol = high/5 +1 ;
		}
		else
		{
			sol = high/5 +2 ;
		}

		cout << sol << endl ;
	}

	return 0 ;
}