Java 求数组中回文数的一位数和

Java 求数组中回文数的一位数和,java,sum,palindrome,Java,Sum,Palindrome,我试图检查回文数并找到回文数的一位数和,但我的代码没有返回正确的值(我发现很难从循环中返回sum的值)。谁能帮我搞错吗。任何帮助都将受到感谢 import java.util.Scanner; public class SumOfPalindrome { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(&qu

我试图检查回文数并找到回文数的一位数和,但我的代码没有返回正确的值(我发现很难从循环中返回sum的值)。谁能帮我搞错吗。任何帮助都将受到感谢

import java.util.Scanner;

public class SumOfPalindrome {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number of array elements");
        int n = sc.nextInt();
        int[] inp = new int[n];
        System.out.println("enter the elements");
        for(int i = 0; i< n ;i++)
        {
            inp[i] = sc.nextInt();
        }
        System.out.println(SumOfPalindromeNumber(inp));
        

    }

    private static int SumOfPalindromeNumber(int[] inp )
    {
        
        int sumpal =0;
        for(int i = 0; i<inp.length;i++)
        {
            int rem =0; 
            int sum = 0;
            while(inp[i]!=0)
            {
                rem = inp[i]%10;
                sum=(sum*10)+rem;
                inp[i]/=10;
            }
            if(inp[i]==sum)
            {
                sumpal+=inp[i];
                
                if(sumpal>9)
                {
                    sumpal=singledigitsum(sumpal);
                }
            }
            
        }
        return sumpal;  
    
    }

    private static int singledigitsum(int sumpal)
    {
        int rem1 = 0;
        int sum1 = 0;
        while(sumpal!=0)
        {
            rem1=sumpal%10;
            sum1+=rem1;
            sumpal/=10;
        }
        if(sum1>9)
        {
            sum1=singledigitsum(sum1);
        }
        return sum1;
    }

}
import java.util.Scanner;
公共级停车场{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入数组元素的数量”);
int n=sc.nextInt();
int[]inp=新的int[n];
System.out.println(“输入元素”);
对于(int i=0;i9)
{
sum1=单指(sum1);
}
返回sum1;
}
}
  • 输入数字

  • 检查哪些数字是回文

  • 若那个数字是回文,那个么求它的数字之和

  • 代码:

        import java.util.Scanner;
    
    public class SumOfPalindrome {
    
        public static void main(String[] args) {
            SumOfPalindrome sumOfPalindrome=new SumOfPalindrome();
            Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number of array elements");
        int n = sc.nextInt();
        int[] inp = new int[n];
        System.out.println("enter the elements");
        for(int i = 0; i< n ;i++)
        {
            inp[i] = sc.nextInt();
        }
        
        for(int i=0;i<n;i++)
        {
            if(sumOfPalindrome.isPallindrone(inp[i]))
            {
                System.out.println("No -> "+inp[i]+" Sum->"+sumOfPalindrome.sumOfDigits(inp[i]));
            }
        }
    }//
    
    public boolean isPallindrone(int no)
    {
        int r,sum=0,temp;    
        
    
        temp=no;    
        while(no>0){    
            r=no%10;  //getting remainder  
            sum=(sum*10)+r;    
            no=no/10;    
        }    
        if(temp==sum)    
        {
            return true;
        }
        else    
        {
            return false;
        }
    }
    
    
    
    public int sumOfDigits(int no) 
    {
        int sum = 0; 
        
        while (no != 0) 
        { 
            sum = sum + no % 10; 
            no = no/10; 
        }   
    
    
        return sum;
        }
    }
    
    import java.util.Scanner;
    公共级停车场{
    公共静态void main(字符串[]args){
    SumOfPalindrome SumOfPalindrome=新的SumOfPalindrome();
    扫描仪sc=新的扫描仪(System.in);
    System.out.println(“输入数组元素的数量”);
    int n=sc.nextInt();
    int[]inp=新的int[n];
    System.out.println(“输入元素”);
    对于(int i=0;i
    我不理解您代码中sumpal的用途。您需要一个方法,该方法返回数组中的palindromes。我评论了错误的部分

    import java.util.Scanner;
    
    public class SumOfPalindrome_1 
    {
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("Enter the number of array elements");
            int n = sc.nextInt();
            int[] inp = new int[n];
            System.out.println("enter the elements");
            for(int i = 0; i< n ;i++)
            {
                inp[i] = sc.nextInt();
            }
            //System.out.println(SumOfPalindromeNumber(inp));
            SumOfPalindromeNumber(inp);
            
    
        }
    
        private static void SumOfPalindromeNumber(int[] inp )
        {
            
            int sumpal =0;
            for(int i = 0; i<inp.length;i++)
            {
                int rem =0; 
                int sum = 0;
                while(inp[i]!=0)
                {
                    rem = inp[i]%10;
                    sum=(sum*10)+rem;
                    inp[i]/=10;
                }
                if(inp[i]==sum)
                {
                   // sumpal+=inp[i];
                    
                    /*if(sumpal>9)
                    {
                        sumpal=singledigitsum(sumpal);
                    }
                    */
                    System.out.println(singleDigitSum(inp[i]));
                }
                
            }
            
        
        }
    
        private static int singleDigitSum(int sumpal)
        {
            int rem1 = 0;
            int sum1 = 0;
            while(sumpal!=0)
            {
                rem1=sumpal%10;
                sum1+=rem1;
                sumpal/=10;
            }
            if(sum1>9)
            {
                sum1=singleDigitSum(sum1);
            }
            return sum1;
        }
    
    }
    
    import java.util.Scanner;
    公共级停车场1
    {
    公共静态void main(字符串[]args){
    扫描仪sc=新的扫描仪(System.in);
    System.out.println(“输入数组元素的数量”);
    int n=sc.nextInt();
    int[]inp=新的int[n];
    System.out.println(“输入元素”);
    对于(int i=0;i9)
    {
    sum1=单指(sum1);
    }
    返回sum1;
    }
    }
    
    如果情况并非如此,则表示歉意,但这似乎是您在寻找编码测试的答案。

    阿曼,除了您的代码之外,您还需要给出一些解释,以帮助OP了解您所做的事情。谢谢您,阿曼,这很有效,但我正在寻找以丁格尔数字表示的总数。另外,我想知道我犯了什么错误。Aman,sumpal是我代码中数组中所有回文数的总和。我试图返回总和,如果sumpal(所有回文数的总和)不是一位数,那么我只想得到一位数的总和。但是我不能返回总和的值,它返回0。是的,先生,练习这些问题并找出错误。