[java]代码库
import java.util.Scanner;
public class Fenli{
public static void main(String[] args){
System.out.println("输入一个数");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a=weishu(n);
System.out.println(n+"是"+a+"位数");
shu(n,a);
}
public static int weishu(int x){ //确定有几位数
int a=10,n=1; //n记数字的位数,a记除数
double b=x/a;
if(b<1)
return n; //如果除以10小于1则是个位数,只有一位
else
{
while(b>1) //如果大于1,则a*10,n+1,循环再次判断,直到商小于1,返回位数
{
a=a*10;
n++;
b=x/a;
}
return n;
}
}
public static void shu(int x,int y){ //分离每位上的数
int a=1,sum=0;
int j=0;
int c[]=new int[y]; //将分离的数存入数组中
for(int i=1;i<y;i++)
{
a=a*10; //先分离最高位
}
while(a>0)
{
int b=x/a;
c[j]=b; //商就是最高位上的数,存入数组
j++;
x=x%a; //取余作为被除数,再循环
a=a/10;
}
for(int i=0;i<y;i++) //输出数组中的数
System.out.print(c[i]+" ");
System.out.println(" ");
for(int i=0;i<y;i++) //求和
sum=sum+c[i];
System.out.print("和是"+sum);
}
}
[代码运行效果截图]