学习目标:
目标:熟练运用 Java所学知识
题目内容:
本文内容:使用Java求某一个数字在1-100中出现的次数
实现思想:
1.想要找到某个数字就得将数字分解,在与想要求的数字做比较,如果相等则count++;
2.1-100之间分为三种,只有个位数,有个位数和十位数,有百位数十位数个位数的三种,
3.使用num%10可以直接求出个位数,使用num/10%10可以得到十位数,使用num/10/10%10可以得到百位数,但需要注意的是,如果是1-9使用num/10%10得到的必是0;所以对于num/10%和10num/10/10%10的使用必须加限定条件既 num / 10 != 0(具体的请看一下代码,比较直观)
本文末尾对frequency(int i)方法进行了优化,也就是对判断次数进行了优化,变得更加简洁有效,你们可以直接看优化后的代码
实现代码:
public class practice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询次数的数字:");
int i = scanner.nextInt();
System.out.println("1-100中" + i + "出现了" + frequency(i) + "次");
}
public static int frequency(int i) {
int count = 0;
for (int j = 1; j <= 100; j++) {
if (j % 10 == i) count++;
if (j / 10 != 0)//不只有个位数
{
int m1 = j / 10;
if (m1 % 10 == i) count++;
if (m1 / 10 != 0)//不只有个位数和十位数
{
int m2 = m1 / 10;
if (m2 % 10 == i) count++;
}
}
}
return count;
}
}
//运行结果
请输入要查询次数的数字:
9
1-100中9出现了20次
代码优化:
对frequency(int i)方法进行了优化 ,能让你们看的更加清楚
public class practice {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入要查询次数的数字:");
int i=scanner.nextInt();
System.out.println("1-100中"+i+"出现了"+frequency(i)+"次");
}
public static int frequency(int i) {
int count = 0;
for (int j = 1; j <= 100; j++) {
int m=j;
while (m!= 0) {
if (m%10 == i){count++;}
m=m/10;
}
}
return count;
}
}