求教:Java 字符串拼接与数学运算哪个执行效率更高?

本贴最后更新于 1367 天前,其中的信息可能已经沧海桑田

请看代码

    /**
     * 题目:求 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);
    }

题目来自这里,我想问的是上面的两个方法哪个执行效率更高,希望能科普一下原理。。谁有更好的实现方法也希望不吝赐教 😄

暂时忽略数据不合法造成的转换错误

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3013 引用 • 8158 回帖 • 546 关注
  • 字符串
    28 引用 • 57 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • pangwen
    捐赠者 作者

    OK,谢谢大 D! 😄

  • 其他回帖
  • 88250
    订阅者

    JMH 你值得拥有。

    1 回复