代码改变世界

求一个数字的每位上的数字并求和

2017-10-10 13:52  默默不语  阅读(2238)  评论(0编辑  收藏  举报

1.程序设计思想

     ①   在main函数中先提示用户输入一个位数小于10的数字。

     ②   定义长度为10的数组存放所输入整数的每一位上的数字。

     ③   利用循环判断数字为几位数,并同时取到每一位上的数字。可以利用number%10取到最后一位上的数字存放在数组中,利用计数器计算位数,number/10语句可以抹掉最后一位上的数字。

     ④   利用循环倒序输出为把每一位上数字按从高到低输出到屏幕。

     ⑤   利用循环计算每一位数字的和,并在屏幕上显示。

2.程序流程图

3.程序源代码

import java.util.Scanner;
public class Calculate {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入数字(位数小于等于10):");
        Scanner input=new Scanner(System.in);
        int number=input.nextInt();//用户输入整数
        int num[]=new int[10];//定义数组来储存每一位数字
        Fangfa F=new Fangfa();
        F.judge(number, num);//调用方法判断是几位数
    }

}



public class Fangfa
{
    public void judge(int number,int num[])//判断位数并取数
    {
        int count=0;
        int sum=0;
        if(number==0)
        {
            count=1;
        }
        while(number!=0)
        {
            num[count-1]=number%10;//取到每一位的数
            count++;//计算有多少位数字
            number=number/10;
        }
        System.out.print(count+"位数字,分别为:");
        for(int i=count-1;i>=0;i--)
        {
            System.out.print(num[i]+" ");//显示每一位数字
        }
System.out.print("\n");
for(int i=0;i<num.length;i++)//计算各位数字之和
        {
            sum=sum+num[i];
        }
        System.out.println(count+"位数字之和为:"+sum);//输出sum
        }
}

4.结果截图

 

5.实验总结

   开始时只知道程序的大体步骤,不知道该怎样判断输入的数字是几位数,只能先把别的步骤写完整,最后想起学C语言中老师给我们讲过判断数字的方法,就是源代码中的利用while循环判断,number%10取到最后一位上的数字存放在数组中,number/10抹掉最后一位的数字,每取到一位数字给计数器加一 ,这样就可以得到输入的数字是几位数字了。