虽然说这个题目没有用递归的必要,但既然你要求了,那我就写写吧
[AppleScript] 纯文本查看 复制代码 public class Test3 {
public static void main(String[] args) {
//创建键盘输入流并获取需要的数据
Scanner sc = new Scanner(System.in);
System.out.println("计算s = a + aa + aaa + aaaa.......+ aaa...的值");
System.out.println("输入a的值:");
String num = sc.nextLine();
System.out.println("请输入位数:");
Integer wei = Integer.parseInt(sc.nextLine());
//创建计算所需字符串
StringBuilder sb = new StringBuilder();
for(int i = 0; i < wei; i++){
sb.append(num);
}
//递归求和
int sum = getSum(sb);
//输出结果
System.out.println(sum);
}
/**
* 递归方法,每一次递归字符串截去一个字符
* @param sb
* @return
*/
private static int getSum(StringBuilder sb) {
//当字符串长度不为1,继续递归
if(sb.length() != 1) {
return Integer.parseInt(sb.toString()) + getSum(new StringBuilder(sb.substring(1)));
}else {
//字符串长度为1,返回当前字符串代表的值
return Integer.parseInt(sb.toString());
}
}
} |