/* TQC+ JAVA6 - 407 */

import java.util.Scanner;

public class JPA407 {
    static Scanner keyboard = new Scanner(System.in);
    public static void main(String args[]) {
        String s;
        System.out.print("Input a string of numbers: ");
        s = keyboard.nextLine();
        System.out.printf("尾端遞迴:%d\n", sumTail(s, 0));
        System.out.printf("迴圈:%d\n", sumLoop(s));
        System.out.print("Input a string of numbers: ");
        s = keyboard.nextLine();
        System.out.printf("尾端遞迴:%d\n", sumTail(s, 0));
        System.out.printf("迴圈:%d\n", sumLoop(s));
    }
    //迴圈方法
    static int sumLoop(String s) {
	   int ln = s.length();
	   int[] num = new int[ln];

       for(int i=0;i<ln;i++)
		   num[i]=Integer.parseInt(s.substring(i, i+1));
	   int sum =0;
	   for(int i=0;i<ln;i++)
		   sum+=num[i];
	   return sum;
    }

    //尾端遞迴
    static int sumTail(String s,int i){
	   if(s.equals(""))//如果傳入的字串為空,回傳累加的i值
		   return i;
	   else//字串不為空時,則利用substring讀取位置1之後的字串,並傳入
		   //後面的i值則將字串的第一個字元讀出轉成數字並累加
	       return sumTail(s.substring(1),i+Integer.parseInt(s.substring(0, 1)));
   }
}