洛谷:P1554 梦中的统计 JAVA
创始人
2024-05-28 20:26:18
0

思路:

定义一个长度为10的数组,数组下标代表数组元素的数字,比如arr[0]代表数字0.

用一个for循环,对每个数先取余再取整,知道取整得到的数为0,说明该数字已经被拆解完了。

今天又学了一个输入,原来它们叫快速输入输出(BufferedReader类、StreamTokenizer类、PrintWriter类)。

StreamTokenizer类:

StringTokenizer 用来分割字符串,你可以指定分隔符,比如',',或者空格之类的字符。

BufferedReader provides quite fast read operations for almost all problems. But this class may be used to read single characters and lines only. To read tokens and numbers you should use StringTokenizer orStreamTokenizer.

算法中的常见用法:

import java.io.*;public class Main
{public static void main(String[] args) throws IOException{//为了提高效率,使用BufferedReader创建StreamTokenizer对象 StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));int a, b;while(in.nextToken() != StreamTokenizer.TT_EOF){//nextToken()返回值为int型,StreamTokenizer.TT_EOF常量是int型,所以他俩能比较a = (int)in.nval;in.nextToken();b = (int)in.nval;out.println(a + b);}out.flush();}
}
为了从流中获取标记,可以调用StreamTokenizer的nextToken()方法。
调用nextToken()方法以后,如果标记是字符串,可用 String s=st.sval,如果是整数用 int n=(int) st.nval得到。

我的理解:String val, number val

nextToken() 每调用一次就会获取下一组标记 ,Java默认的分隔符是“空格"、"制表符(‘\t’)"、"换行符(‘\n’)"、"回车符(‘\r’)"

我对“标记”的理解:标记就是可以被StreamTokenizer读取的数据。

详细见:

(87条消息) 【Java基础】StreamTokenizer使用详解_小七mod的博客-CSDN博客

java StreamTokenizer使用 - likai_liche - 博客园 (cnblogs.com)

代码:

package 数组;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;public class P1554 {public static void main(String[] args) throws IOException{// TODO Auto-generated method stubStreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));st.nextToken();int m = (int)st.nval;st.nextToken();int n = (int)st.nval;int[] arr = new int[10];for(int i = m; i <= n; i++) {for(int j = i; j != 0;) {arr[j % 10]++;j /= 10;}}for(int x: arr) {pw.print(x+" ");}pw.flush();}
}

收获:

学到了快速输入StreamTokenizer类。

相关内容

热门资讯

用舞蹈书写《夜幕下的哈尔滨》叙...   舞蹈编导张恩淑。本报记者 刘洋摄  ■本报记者 于秋莹 封娇 于博洋  来自韩国的舞蹈编导张恩淑...
上保险!“保梯”又“保人” 玄武区首例,老旧小区加装电梯签署全生命周期综合保险协议上保险!“保梯”又“保人”南报网讯(通讯员 刘...
音飞储存质押触发鹰眼“风险”评... 截止2025年7月5日,音飞储存整体质押股份为4846.54万股,整体质押占总股本之比为16.47%...
天热更要护好“生命线” 转自:湖州日报  记者  忻媛  7月4日,烈日似火,又是一个高温酷暑天。7时许,市城市集团下属水务...
以色列空袭也门胡塞武装控制的红... 转自:新华社新华财经科威特城7月7日电(记者 尹炣)萨那消息:也门胡塞武装旗下多家媒体报道,以色列空...
双杰电气质押触发鹰眼“风险”评... 截止2025年7月5日,双杰电气整体质押股份为1.27亿股,整体质押占总股本之比为15.86%,累计...
德创环保质押触发鹰眼“风险”评... 截止2025年7月5日,德创环保整体质押股份为5405.00万股,整体质押占总股本之比为26.22%...
高口碑粤语音乐剧《大状王》本周... 转自:北京日报客户端近年来原创音乐剧中口碑极佳的粤语音乐剧《大状王》即将首次亮相北京,7月11日至2...
同和药业质押触发鹰眼“风险”评... 截止2025年7月5日,同和药业整体质押股份为411.00万股,整体质押占总股本之比为0.98%,累...
凯伦股份质押触发鹰眼“风险”评... 截止2025年7月5日,凯伦股份(维权)整体质押股份为1.54亿股,整体质押占总股本之比为40.67...