黑马程序员技术交流社区

标题: 做题交流 [打印本页]

作者: 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