Problem:
一番下の行の数字は?

次のような数字のパターンを作ることを考えます。

4 8 2 3 1 0 8 3 7 6
2 0 5 4 1 8 1 0 3
2 5 9 5 9 9 1 3
7 4 4 4 8 0 4
1 8 8 2 8 4
9 6 0 0 2
5 6 0 2
1 6 2
7 8
5

このパターンは以下の規則に従っています。

A B
C

という数字の並びにおいて、C は A + B の 1 の位の数字である。たとえば、

9 5
4

では、9 + 5 = 14 の 1 の位の数字、すなわち 4 が 9 と 5 の斜め下に並べられます。また、

2 3
5

では、2 + 3 = 5 の 1 の位の数字、すなわち 5 が 2 と 3 の斜め下に並べられます。

一番上の行の 10 個の整数を読み込んで、一番下の行の 1 個の数を出力するプログラムを作成してください。

Input

入力は複数のデータセットからなります。各データセットとして、一番上の行の 10 個の数字が文字列として１行に与えられます。

データセットの数は 20 を超えません。

Output

データセットごとに、一番下の行の数字を１行に出力します。

Sample Input

4823108376
1234567890
0123456789

Output for the Sample Input

5
6
4

Solution in JAVA (judge verdict: Accepted)

import java.util.Scanner;
class Main {
	public static void main(String args[]){
		Main app = new Main();
		Scanner scan = new Scanner(System.in);
		int[] num = new int[10];
		int ans;
		while(scan.hasNext()){
			app.input(num,scan);
			ans = app.operation(num);
			System.out.println(ans);
		}
	}
	
	public int operation(int[] num){
		int i,j;
		int[] tmp = new int[10];
		for(i=0;i<10;i++){
			tmp[i] = num[i];
		}
		
		for(i=9;i>=1;i--){
			for(j=0;j<i;j++){
				num[j] = tmp[j]+tmp[j+1];
				if(num[j]>=10){
					num[j]-=10;
				}
			}
			for(j=0;j<i;j++){
				tmp[j] = num[j];
			}
		}
		
		return num[0];
	}
	
	public void input(int[] num,Scanner scan){
		String str = scan.nextLine();
		for(int i=0;i<str.length();i++){
			num[i] = Integer.parseInt(""+str.charAt(i));
		}
	}
}