【数据结构】奖券数目

题目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码
主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

要求

请输出该数字(一个整数),不要写任何多余的内容或说明性文字。

方法一:遍历替换

思路:

  1. 遍历10000到99999
  2. 将数字转换为String类型
  3. 然后使用indexOf()查找"4"
  4. 如果没有遇到“4”,则返回-1
  5. 做判断,若等于-1,则进行+1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package lab;

public class 奖券数目03 {
static int num=0;
public static void main(String[] args) {
funsum();
}
static public void funsum() {
for (int i = 10000; i <= 99999; i++) {
//找到返回数字,找不到“4”返回-1
int string = String.valueOf(i).indexOf("4");

//找不到4,返回-1,则
if (string==-1) {
num++;
}
}
System.out.println(num);
}
}

知识点

Java字符串的查找与拼接

如果字符串是String类型,则使用str.index.Of("查找内容")可以查找。

  • 查找到内容,返回索引号(索引号从0开始)
  • 查找内容不存在,返回-1

本文章来源于我的博客:https://blog.hikki.site