快乐数(链表+递归)java版

快乐数的定义是:对于一个正整数,每次将该数替换为它每个数字的平方和,重复这个过程直到这个数变为1

private static void isHappy(int value){
        if (value>9){
            NumberL numbers = getNumber(value);
            if (numbers!=null){
                NumberL lNum = numbers.next;
                System.out.println(numbers.value);

                int first = (int) Math.pow(numbers.value,2);
                int sum = first;
                while (lNum!=null){
                    System.out.println(lNum.value);
                    first = (int) Math.pow(lNum.value,2);
                    sum = sum+first;
                    System.out.println(sum);
                    lNum = lNum.next;
                }
                if (sum>9){
                    isHappy(sum);
                }else{
                    System.out.println("sum="+sum);
                }
            }else{
                System.out.println(value);
            }
        }else{
            System.out.println(value);
        }

    }
    private static NumberL getNumber(int value){
        NumberL numL = new NumberL(0);
        NumberL next;
        NumberL first = numL;
        if (value>9){
            while (value>0){
                int val = value%10;
                next =  new NumberL(val);
                first.next = next;
                first = next;
                value = value/10;
            }
        }else{
            numL.next = new NumberL(value);
        }
        return numL.next;
    }

class NumberL{
    int value;
    NumberL next;

    public NumberL(int value) {
        this.value = value;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容