黑马程序员技术交流社区

标题: 编程题 [打印本页]

作者: 轩辕邵宇    时间: 2014-11-19 00:04
标题: 编程题
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
作者: 十万一千    时间: 2014-11-19 11:32
本帖最后由 十万一千 于 2014-11-19 16:25 编辑
  1. public static void main(String[] args) {
  2.                 try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));) {
  3.                         System.out.println("请输入[1-9]的整数:");
  4.                         Integer max = new Integer(bufferedReader.readLine());
  5.                         if (max >= 1 && max <= 9) {
  6.                                 Integer sum = 0;
  7.                                 StringBuilder stringBuilder = new StringBuilder();
  8.                                 String baseNumber = "2";
  9.                                 for (int i = 0; i < max; i++) {
  10.                                         Integer tmp = new Integer(stringBuilder.append(baseNumber).toString());
  11.                                         if (i == max - 1) {
  12.                                                 System.out.print(tmp + "=");
  13.                                         } else {
  14.                                                 System.out.print(tmp + "+");
  15.                                         }

  16.                                         sum += tmp;
  17.                                 }
  18.                                 System.out.println(sum);
  19.                         } else {
  20.                                 throw new RuntimeException("输入数值过大");
  21.                         }
  22.                 } catch (NumberFormatException | IOException e) {
  23.                         System.out.println("输入错误!");
  24.                 }
  25.         }
复制代码



作者: 李运岚    时间: 2014-11-19 13:06
说一下基本思想吧,第一个是2,第二个是22=2+2*10,第三个222=22+2*100,第四个2222=222+2*1000,依此类推




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2