算法设计:统计数字问题
来源:互联网 发布:法兰绒衬衫怎么洗 知乎 编辑:程序博客网 时间:2024/06/08 14:52
声明:代码仅用于新手交流,不足之处请多包涵;
有问题请微信 sjh19960326
计算1~n的所有整数,一共用到了多少次0,1,2,3,4,5,6,7,8,9;
整数6用6表示,而不是06,006等。
样例输入:11
样例输出:数字:0,1,2,3,4,5,6,7,8,9
次数:1,4,1,1,1,1,1,1,1,1
分析:1 新建一个长度为10的整形数组,分别存储0~9总共出现的次数;
索引n对应的值就是数字n出现的次数;
int[] times = new int[10];
2 遍历1~n,将得到的数字拆解成单位数,存入另一个整形数组;
然后遍历得到的整形数组,得到n,则将times数组的n索引的值加一;
for(int i=1;i<=num;i++) {
String str = String.valueOf(i);
char[] cs = str.toCharArray();
for(int j=0;j<cs.length;j++) {
char[] chs = {cs[j]};
String temp = new String(chs);
int rel = Integer.valueOf(temp);
times[rel]++;
}
}
3 遍历times数组,输出结果;
for(int i=1;i<=num;i++) {
String str = String.valueOf(i);
char[] cs = str.toCharArray();
for(int j=0;j<cs.length;j++) {
char[] chs = {cs[j]};
String temp = new String(chs);
int rel = Integer.valueOf(temp);
times[rel]++;
}
有问题请微信 sjh19960326
问题分析:
要求:输入一个正整数n(n>1);计算1~n的所有整数,一共用到了多少次0,1,2,3,4,5,6,7,8,9;
整数6用6表示,而不是06,006等。
样例输入:11
样例输出:数字:0,1,2,3,4,5,6,7,8,9
次数:1,4,1,1,1,1,1,1,1,1
分析:1 新建一个长度为10的整形数组,分别存储0~9总共出现的次数;
索引n对应的值就是数字n出现的次数;
int[] times = new int[10];
2 遍历1~n,将得到的数字拆解成单位数,存入另一个整形数组;
然后遍历得到的整形数组,得到n,则将times数组的n索引的值加一;
for(int i=1;i<=num;i++) {
String str = String.valueOf(i);
char[] cs = str.toCharArray();
for(int j=0;j<cs.length;j++) {
char[] chs = {cs[j]};
String temp = new String(chs);
int rel = Integer.valueOf(temp);
times[rel]++;
}
}
3 遍历times数组,输出结果;
for(int i=1;i<=num;i++) {
String str = String.valueOf(i);
char[] cs = str.toCharArray();
for(int j=0;j<cs.length;j++) {
char[] chs = {cs[j]};
String temp = new String(chs);
int rel = Integer.valueOf(temp);
times[rel]++;
}
}
代码实现:
@Test
public void fn1_1_1() {
int num = new Scanner(System.in).nextInt();
//times存储0~9分别出现的次数,
int[] times = {0,0,0,0,0,0,0,0,0,0};
//核心算法,
for(int i=1;i<=num;i++) {
String str = String.valueOf(i);
char[] cs = str.toCharArray();
for(int j=0;j<cs.length;j++) {
char[] chs = {cs[j]};
String temp = new String(chs);
int rel = Integer.valueOf(temp);
times[rel]++;
}
}
System.out.print("数字: ");
for (int i = 0;i<10;i++) {
System.out.print(i+", ");
}
System.out.println();
System.out.print("次数:");
for (int i : times) {
System.out.print(i+", ");
}
}
阅读全文
0 0
- 算法设计:统计数字问题
- 统计数字问题[算法设计与分析]
- 算法分析与设计之统计数字问题
- 算法-------统计数字问题
- 统计数字问题算法
- 统计数字问题算法1
- 算法设计之补零递归法(统计数字问题)
- 算法1 —统计数字问题
- 算法1-1:统计数字问题
- 算法设计与分析 1-1 统计数字问题(C语言版)
- 统计数字问题-算法实现(暴力统计法)
- 每日学习一算法【1】统计数字问题
- 统计数字问题
- 统计数字问题
- 统计数字问题
- 统计数字问题
- 统计数字问题
- 统计数字问题
- Docker实战:Docker安装部署RabbitMQ
- 记:使用Wampserver运行php程序时在该局域网的手机访问提示You don't have permission to access / on this server.
- java web 项目中的时间处理
- <自用笔记>PB数据窗口控件之事件
- Java WebSocket基于注解配置访问ServletAPI
- 算法设计:统计数字问题
- Java学习笔记(7)- Java系统类
- 操作系统的发展史(科普章节)
- Tomcat本地部署 Android内网加载
- 结构经典例题,用上了typedef 再进行指针优化
- foreach循环中remove引起java.util.ConcurrentModificationException异常
- mysql 事务
- 2卷积神经网络相关API详解-2.1TensorFlow之卷积操作API
- es6<一>