前言:
本篇博客将带大家了解如何计算1~100所有的数里面有几个9和计算1~100内有几个数带9
目录
计算1~100所有的数里面有几个9
思路一:
想要求1~100里所有的数里有几个9,无非就是个位上的个数9加上十位上9的个数。(假设我们现在正在判断的那个数是n)于是我们可以先通过n%10来取出n的个位,再和9比较。取完模以后可以通过n/10来拿到十位上的数字,再和9去比较。当n=100的时候也是一样的。
public class Main {
public static void main(String[] args) {
int i=9;
int count=0;
for (int j = 9; j <=100 ; j++) {
int b=j;
//因为j要一直往下加到100,
//所以在while循环内的这些操作都不能直接对进行,
//会改变j,只能再创建一个变量
while(b!=0){
if(b%10==i){
count++;
}
b=b/10;
}
}
System.out.println(count);
}
}
结果:
思路二:
第二种思路和第一种思路大体没有太大的差别,只是方法的写法会更快。直接通过%10来得到各位上的数字,通过/10来得到十位上的数字,然后再和9进行比较。
public static Main{
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <=100 ; i++) {
if(i%10==9){
count++;
}
if(i/10==9){
count++;
}
}
System.out.println(count);
}
}
结果:
计算1~100内有几个数带9
思路:
本题解法是在上题的思路二中稍稍做了一些改动,对于个位和十位都是9(也就是99)的数只加了一次(上题一个9加一次),话不多说,直接上代码。
public static Main{
public static void main3(String[] args) {
int count = 0;
for (int i = 1; i <=100 ; i++) {
if(i%10==9){
count++;
}else if(i/10==9){//else if 意味着一个数只能算一次
count++;
}
}
System.out.println(count);
}
}
效果: