简单算法题1

网上搜集到的一些算法题,没有附答案。

自己做了做,发出来作为记录。

不知道做得如何,也不知道有没有更效率的思路,希望网友多多指教。

/**
 *求s=a+aa+aaa+aaa...a的值,其中a是一个数字。
 *例如2+22+222+2222+22222,几个数相加由键盘n控制。
 */
import java.util.*;
public class CountStr
{
	public static void main(String[] args)//小心s超出long型范围
	{
		byte a = 0;
		byte n = 0;
		long s = 0;
		long tmp = 0;

		ArrayList<Long> arr = new ArrayList<>();
		Scanner scan = new Scanner(System.in);
		
		System.out.println("Input a(1~9): ");
		a = scan.nextByte();
		System.out.println("Input n: ");
		n = scan.nextByte();
		
		for(int i = 0; i < n; i ++)//记录aa...a并计算s
		{
			tmp = tmp*10 + a;
			arr.add(tmp);
			s += tmp;
		}
		
		//友好的输出结果
		Iterator it = arr.iterator();
		String str = "";
		while(it.hasNext())
		{
			if(str == "")
				str = it.next().toString();
			else
				str = str + " + " + it.next().toString();
		}
		System.out.println(s + " = " + str);
	}
}

你可能感兴趣的:(算法)