A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 轩辕邵宇 中级黑马   /  2014-11-19 00:10  /  837 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

5 个回复

倒序浏览
我觉得这应该是算法的问题了
回复 使用道具 举报
cbb 中级黑马 2014-11-19 09:48:29
藤椅
内部解析:你需要一个永远不会变的数2  然后在用第一个数累加 后面跟着 这个数*10   然后再加上那个万年老二 就OK了
回复 使用道具 举报
2=2
22=2*10+2
222=22*10+2
2222=222*10+2
完毕
回复 使用道具 举报
可否把楼上的递归。然后就OK啦。哈哈
回复 使用道具 举报
  1. public class SumTest {
  2.         public static void main(String[] args) {
  3.                 int sum = 0;        // 累加器,用于累加求和
  4.                 int a = 2;        // 任意一个数
  5.                 int b = 0;        // 在累加过程中用于表示当前一轮的数
  6.                 int c = 5;        // 共有多少数相加
  7.                
  8.                 for (int i = 0; i < c; i++) {        // 循环累加,假设有5个数相加
  9.                         b = b * 10 + a;        // 当前一轮的数等于上一轮的数乘以10再加a的值
  10.                         sum += b;
  11.                 }
  12.                 System.out.println(sum);
  13.         }
  14. }
复制代码


仔细研究,实现算法应该还有多种。我好像没有实现你说的“几个数相加有键盘控制”,这个应该是让变量c等于由键盘输入的一个值就行了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马