问题描述:一本书的页码从自然数1开始顺序编码直到自然数n,书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0,例如,第6页用数字6表示而不是06或006等。数字计数问题要求对给定书的总页码n,计算书的全部页码分别用到多少次数字0,1,2,3,4,5,6,7,8,9。
输入数据由input.txt文件提供,数据输出到output.txt。
代码如下:
package 算法设计与分析;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import org.omg.CORBA.PUBLIC_MEMBER;
public class K1_3 {
public static void main(String[] args) throws FileNotFoundException {
int [] a = new int[10];
int n,i,j,m;
File f1 = new File("E:\\computer language\\in&out\\2.txt");//输出数据文件路径
PrintWriter p = new PrintWriter(f1);
File f= new File("E:\\computer language\\in&out\\1.txt");//输入数据文件路径
Scanner in = new Scanner(f);
n = in.nextInt();//把文件中的数据赋给n
for ( i = 1; i <=n; i++) {
if (i<10)
a[i]++;
if(i>=10) {
j = i;
while(j != 0) {
m = j%10;
a[m]++;
j = j/10;
}
}
}
for(i=0;i<10;i++)
p.println(a[i]);//将结果输出到文件
p.close();
in.close();
System.out.println("程序运行结束");
}
}
学习中,欢迎交流,指导