public String compute(int firstDigits, String[] largeValues)
	{
		//各位の和の中に10以上の値が存在するか否か
		boolean existOverTen = false;

		//各位の和を入れるための配列
		int[] sumEachDigits;

		//位の和に位を掛けた値を入れるための文字列配列
		//ex) 百の位の値の和が20 -> String("2000")
		String[] strValues = largeValues;

		do
		{
			existOverTen = false;

			//各桁の和を入れるための配列
			sumEachDigits = calculateSumEachDigits(strValues);

			strValues = new String[sumEachDigits.length];
			int sumDigitsLen = sumEachDigits.length;
			for(int i = 0;i < sumDigitsLen; i ++)
			{
				if(!existOverTen && sumEachDigits[i] >= 10)
				{
					//10以上の値がある場合は再度ループさせる
					existOverTen = true;
				}

				//次のループ用に数字文字列を生成する
				strValues[i] = String.valueOf(sumEachDigits[i]);
				for(int j =0; j < i;j ++)
				{
					//位に沿う用に"0"を後ろにつけていく
					strValues[i] += "0";
				}
			}
		}while(existOverTen);


		int lastIdx = sumEachDigits.length - 1 - firstDigits;
		if(lastIdx < 0)
		{
			lastIdx = 0;
		}

		//先頭からfirstDigits桁目までの値を文字列として返す
		String result = "";
		for(int i = sumEachDigits.length - 1; i > lastIdx ; i--)
		{
			result += sumEachDigits[i];
		}

		return result;
	}