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.*;

public class Main {

	private void doit() {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			String s = sc.next();
			ArrayList<Integer> list = new ArrayList<Integer>();
			ArrayList<Integer> list2 = new ArrayList<Integer>();
			for(int i = 0; i < s.length(); i++){
				list.add(s.charAt(i) - '0');
			}
			while(list.size() > 1){
				for(int i = 0; i <= list.size() - 2; i++){
					int num1 = list.get(i);
					int num2 = list.get(i + 1);
					int res = (num1 + num2) % 10;
					list2.add(res);
				}
				list.clear();
				for(int i = 0; i < list2.size(); i++){
					list.add(list2.get(i));
				}
				list2.clear();
				
			}
			System.out.println(list.get(0));
		}
		
	}

	public static void main(String[] args) {
		Main obj = new Main();
		obj.doit();
	}
}