在一行中输入两个整数
,用空格隔开。其中
表示区间上界,
表示要统计的数字。
输出一个整数,表示数字
在区间
中出现的次数。
11 1
4
在中,数字 1 出现了 4 次。
20 1
12
在区间到
中,数字 1 出现在
中,共 12 次。
import java.util.*;
public class Main {
public static void main(String[] args)
{
int n=0;
int x=0;
int cnt=0;
Scanner in=new Scanner(System.in);
n=in.nextInt();
x=in.nextInt();
for(int i=1;i<=n;i++)
{
int temp=i;
while(temp!=0)
{
if(temp%10==x) cnt++;
temp/=10;
}
}
System.out.println(cnt);
}
} #include<stdio.h>
int main()
{
int n , x , mid_var0 , mid_var1 , mid_var2 , sum = 0 ;
scanf("%d %d",&n,&x);
for(int i = 1 ; i <= n ; i++)
{
mid_var0 = i ;
while(mid_var0 != 0)
{
mid_var1 = mid_var0 % 10 ;
if(mid_var1 == x) sum++;
mid_var0 /= 10 ;
}
}
printf("%d",sum);
return 0;
} #include<stdio.h>
int main() {
int m,n;
int k=0;
scanf("%d %d",&m,&n);
for(int i=1;i<=m;i++) {
int l=i;
while (l>0) {
if (l%10==n) k++;
l=l/10;
}
}
printf("%d",k);
return 0;
} 关键点是提取个位数和除10右移位的操作,其次是变量定义和使用的区别,避免在循环里反复更新变量。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n=in.nextInt();
String x = in.next();
StringBuffer sb = new StringBuffer();
for (int i=1; i<=n; i++) {
sb.append(i);
}
int count = sb.length() - sb.toString().replaceAll(x, "").length();
System.out.println(count);
}
} # 使用数学的方法 n, x = map(int, input().split()) # 1 先判断n的数量级:len(str(n)) a = str(n) len_n = len(a) # 2 判断个位一共出现了多少次该数字 cnt = [] for i in range(len_n): if int(a[-1]) > x: cnt_1 =int(n / (10 ** (i+1))) + 1 else: cnt_1 = int(n / (10 ** (i+1))) # 在考虑两种特殊情况 # 1 x == 0 if x == 0: cnt_1 = cnt_1 - 1 # 计算出现总数 cnt_1 = cnt_1 * (10 **i) # 2 int(a[-1]) == x if int(a[-1]) == x: cnt_1 = cnt_1 + n % (10 ** i) + 1 cnt.append(cnt_1) a = a[0: -1] print(sum(cnt))
#include <stdio.h>
int main() {
int n,x;
int sum = 0;
scanf("%d %d", &n, &x);
for (int i = 1; i <= n ;i++ ) {
int tmp = i;
while (tmp) {
if(tmp % 10 == x)
sum++;
tmp /= 10;
}
}
printf("%d", sum);
return 0;
} #include <stdio.h>
int main()
{
int n, x;
int count = 0;
scanf("%d %d", &n, &x);
for (int i = 1; i <= n; i++)//每一次循环判断一个数,直到n为止
{
int a = i;
while (a)//利用while循环判断每一位数字,直到a等于0,
{
if (a % 10 == x)//如果个位上的数字是x,count加一
count++;
a /= 10;//将个位上的数字去除,十位上的数字变成个位上的数字
}
}
printf("%d", count);
return 0;
} import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(),x=sc.nextInt();
int count=0;
for(int i=1;i<=n;i++)
count+=total(i,x);
System.out.println(count);
}
public static int total(int i,int x){
int sum=0;
while(i!=0){
if(i%10==x) sum++;
i/=10;
}
return sum;
}
} #include <stdio.h>
void Judge(int i, int b, int* count){
while(i > 0){
if(i % 10 == b)
*count += 1;
i /= 10;
}
}
int main(){
int a, b;
int count = 0;
scanf("%d %d", &a, &b);
for(int i = 1; i <= a; i++){
Judge(i, b, &count);
}
printf("%d", count);
return 0;
}