Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加法持久性算法_Java - Fatal编程技术网

Java 加法持久性算法

Java 加法持久性算法,java,Java,我需要一些指导,因为我对编码非常陌生 我正在写一个程序,它可以找到,显示每个方法的总和 如果您不知道什么是加性持久性,下面是一些说明: 加法持久性是整数位数和的一个属性。找到数字的和,然后对和执行数字求和,重复直到达到一个整数。这样的循环数就是该整数的加性持久性。考虑下面的例子: 起始整数是1234 其数字总和1+2+3+4=10 整数现在是10 其数字之和为1+0=1 整数是1。当数值达到一位数时,我们就完成了。最后一个整数是加法根。 我不知道这是我的语法还是什么,但我真的认为我自己解决了这个

我需要一些指导,因为我对编码非常陌生

我正在写一个程序,它可以找到,显示每个方法的总和

如果您不知道什么是加性持久性,下面是一些说明:

加法持久性是整数位数和的一个属性。找到数字的和,然后对和执行数字求和,重复直到达到一个整数。这样的循环数就是该整数的加性持久性。考虑下面的例子:

起始整数是1234 其数字总和1+2+3+4=10 整数现在是10 其数字之和为1+0=1 整数是1。当数值达到一位数时,我们就完成了。最后一个整数是加法根。 我不知道这是我的语法还是什么,但我真的认为我自己解决了这个算法。但是,当我输入一个数字时,没有输出。任何帮助或指点都将不胜感激。我太迷路了


为什么代码没有显示任何结果

您可以将字符串中的每个字符转换为int并求和,而不是立即将字符串转换为整数。如果结果值不小于10,请再次执行。下面是一个递归示例:

private int additivePersistence(String num)
{
    if(num.length() == 1) //If the number is a single digit, we're done
        return Integer.parseInt(num);

    int sum = 0;

    for(int i = 0; i < num.length(); i++)
        sum += (num.charAt(i) - '0'); //Gets integer value of char, adds it to sum

    return additivePersistence(Integer.toString(sum));
}

希望有帮助

您可以包括try-catch块,而不仅仅是编写代码。您的代码当前不处理异常。如果用户输入字符串而不是数字,它将抛出NumberFormatException。因此,您可以将catch block用于:

    try {  
//your code above   
} catch(NumberFormatException nfe)  
{  
System.out.println("Number entered is not numeric."+ nfe.getMessage());  
                    }  

也可考虑使用:

System.exit(0); after if statement so that program stops after calculation. 

你的while循环,while num3>0-num3从零开始,所以循环永远不会进入。非常感谢,我已经摆脱了num3。而num1>0{num2=num1%10;result=result+num2;num1=num1/10;count++;
System.exit(0); after if statement so that program stops after calculation.