统计数字问题
2012-05-01 23:39
274 查看
public class Test1_1 {
/**
* 问题描述:一本书的页码从自然数1开始顺序编码直到自然数n。书做的页码通常的习惯编排,每个
* 页码都不含多余的前导数字0。例如,第六页用数字6表示,而不是06或者006等。
* 数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0~9
*
*算法设计如下
*/
public void count(int total){
int a0=0,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0;//定义十个整型数字用来分别计算0~9出现的次数
for(int i=1;i<=total;i++){
String str=""+i;//转成字符串
char[] ch=str.toCharArray();//将字符串转换为字符数组
for(int j=0;j<ch.length;j++){
switch (ch[j]) {
case '0':a0++;break;
case '1':a1++;break;
case '2':a2++;break;
case '3':a3++;break;
case '4':a4++;break;
case '5':a5++;break;
case '6':a6++;break;
case '7':a7++;break;
case '8':a8++;break;
case '9':a9++;break;
default:
break;
}
}
}
System.out.println("0出现的次数为:"+a0);
System.out.println("1出现的次数为:"+a1);
System.out.println("2出现的次数为:"+a2);
System.out.println("3出现的次数为:"+a3);
System.out.println("4出现的次数为:"+a4);
System.out.println("5出现的次数为:"+a5);
System.out.println("6出现的次数为:"+a6);
System.out.println("7出现的次数为:"+a7);
System.out.println("8出现的次数为:"+a8);
System.out.println("9出现的次数为:"+a9);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test1_1 test=new Test1_1();
test.count(12);
}
}
运行结果如下:
0出现的次数为:11出现的次数为:5
2出现的次数为:2
3出现的次数为:1
4出现的次数为:1
5出现的次数为:1
6出现的次数为:1
7出现的次数为:1
8出现的次数为:1
9出现的次数为:1