请看代码
/**
* 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。
* 例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。
*/
public static long cal(int num,int count){
if(num == 0)
return 0;
if(count == 1)
return num;
long temp = 0;
for (int i = count; i > 0 ; i--) {
temp += num * Math.pow(10,i-1);
}
return temp + cal(num,count-1);
}
public static long strAppend(int num , int count){
if(num == 0)
return 0;
if(count == 1)
return num;
StringBuilder sb = new StringBuilder();
for (int i = 0; i <count ; i++) {
sb.append(num);
}
long tempResult = Long.parseLong(sb.toString());
return tempResult + strAppend(num, count - 1);
}
题目来自这里,我想问的是上面的两个方法哪个执行效率更高,希望能科普一下原理。。谁有更好的实现方法也希望不吝赐教 😄
暂时忽略数据不合法造成的转换错误
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于