问题:输入一个8位 整数 
输出0~9各数字在该整数出现次数 
最好有代码
public class Test1 {    public static void main(String[] args) {
        int n = 45788894;
        int[] f = getNumberFrequency(n);
        for(int i = 0; i < f.length; i++) {
            System.out.println(i + " --> " + f[i]);
        }
    }
    
    public static int[] getNumberFrequency(int num) {        
        int[] result = new int[10];
        if(num < 0) {
            num = -num;
        }
        while(num > 0) {
            result[num % 10]++;
            num /= 10;
        }
        return result;
    }
}
另:想问一下,
        int n = 45788894;
这里的n的数值是定随意设的吗?
还有        int[] f = getNumberFrequency(n);
这句看不太懂,能详细解释一下吗?
本人是新手,麻烦各位讲的详细些了,非常感谢!

解决方案 »

  1.   

    n是任意的整数,  getNumberFrequency(n)函数下面代码有他的实现方法,里面result[0~9]的值就是对应数字0~9出现的次数
      

  2.   

    public class Test1 {     public static void main(String[] args) { 
            //用户自定义的数字
            int n = 45788894; 
            //调用getNumberFrequency()方法    返回值是一个数组 
            int[] f = getNumberFrequency(n); 
            for(int i = 0; i < f.length; i++) { 
                System.out.println(i + " --> " + f[i]); 
            } 
        } 
        /*静态函数 主要功能就是定义一个十位的数组把0的个数存在result[0]
          把1的个数存在result[1] ..... 把9的个数存在result[9]
        */
        public static int[] getNumberFrequency(int num) {        
            int[] result = new int[10]; 
            if(num < 0) { 
                num = -num; 
            } 
            //循环语句
            while(num > 0) { 
                //对数求余 相应的数组位置就加一
                result[num % 10]++; 
                //对数求整后 去掉末位数字 转入下次循环
                num /= 10; 
            } 
            return result; 
        } 
    }
      

  3.   

    我有个想法,先把整数转换成字符串,再将字符串转换成char[],通过两个嵌套循环直接输出,效果如下:
    0出现了:××次
    1出现了:××次
    2出现了:××次
    3出现了:××次
    4出现了:××次
    ...
      

  4.   

    我有个想法,先把整数转换成字符串,再将字符串转换成char[],通过两个嵌套循环直接输出,效果如下:
    0出现了:××次
    1出现了:××次
    2出现了:××次
    3出现了:××次
    4出现了:××次
    ...