黑马程序员技术交流社区
标题:
做题交流
[打印本页]
作者:
Fangjie
时间:
2016-6-12 15:11
标题:
做题交流
题目:求s=a+aa+aaa+aaa...a的值,其中a是一个整数。例如2+22+222+2222+22222(此时共用5个数相加,几个数相加由键盘控制)
// 在控制台输出提示信息,并接受控制台输入的数据
System.out.println("请输入要加的数与加的次数,格式如下:x,x");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
sc.close();
// 判断如果发现输入的字符串中有中文逗号则替换成英文逗号
if (str.contains(",")) {
str.replace(",", ",");
}
// 定义一个sb缓存区
StringBuffer sb = new StringBuffer();
// 分割控制台输入的数据,并转换成字符串数组将值赋给数num变量和count加的次数变量
String[] arr = str.split(",");
String num = arr[0];
int count = Integer.parseInt(arr[1]);
// 新建一个字符串数组,用于存放num累加后的字符串
String[] buf = new String[count];
// 开始累加,判断为null直接赋值,不为空才累加
for (int x = 0; x < count; x++) {
for (int y = 0; y<=x; y++) {
if (buf[x] == null) {
buf[x] = num;
} else {
buf[x] += num;
}
}
}
// 计算数的累加次数之和
int sum = 0;
// 包存放累加公式至缓冲去内,便于控制台查看
for (String s : buf) {
sb.append(s + "+");
sum += Integer.parseInt(s);
}
// 删除最后一个不要的+号
sb.deleteCharAt(sb.length() - 1);
// 在控制台输出打印结果
System.out.println(sb.toString() + "=" + sum);
作者:
tianzhu2725
时间:
2016-6-12 20:45
学习学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2