java 给定一个非负整数num,反复添加所有的数字,直到结果只有一个数字

来源:互联网 发布:双色球矩阵选号器 编辑:程序博客网 时间:2024/05/22 05:16

/*对于大整数自己考虑如何修改代码*/



import java.util.Scanner;

public class Solution {



static int []a=new int[10000000];  //存储整数各个位上的数字
     static int k=0,j=0;     //k和j用来存储整数各个位上的数字下标
public static void main(String[] args) {


int sum=0;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数:");
int a=sc.nextInt();
sum=addDigits(a);
        System.out.println(sum);
}

public static int addDigits(int num) {  
       
       int s=0,i,data,N=num;  //N为传入的参数,s为各个位数字之和,data为各个位上的数字
 
       if(N>=10)
       {   
          
           j=k;
           while(num>0)
           {
               data=num%10;
               a[k]=data;
               num=num/10;
               k++;
              
           }
           for(i=j;i<k;i++) //j,k分别为第一次各位数字的位置,第二次各位数字存放的位置,保证和为最新的正确的
           {
               s+=a[i];
           }
           if(s>=10)
           {
               return addDigits(s);
           }
           else
           
             return s;
       
       }
   
       else
       
           return N;
       
       
   }
 


}

0 0
原创粉丝点击