BC153. [NOIP2010]数字统计
描述
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。
比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。
输入描述
输入共1行,为两个正整数L和R,之间用一个空格隔开。输出描述
输出共1行,表示数字2出现的次数。示例1
输入:
2 22
输出:
6
示例2
输入:
2 100
输出:
20
C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2022-08-03
#include<stdio.h> int num_two(int L,int R) { int count = 0; for(int i = L;i<=R;i++) { int ret = i; while(ret) { if(ret % 10==2) { count++; } ret = ret/10; } } return count; } int main() { int L,R; scanf("%d %d",&L,&R); printf("%d\n",num_two(L,R)); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2022-03-22
#include<stdio.h> int num_two(int l, int r) { int count = 0; for (int i = l; i <= r; i++) { int ret = i; while (ret) { if (ret % 10 == 2) count++; ret /= 10; } } return count; } int main() { int l, r; scanf("%d%d", &l, &r); printf("%d\n", num_two(l, r)); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2022-03-15
#include<stdio.h> int main(void) { int L; int R; int num = 0; scanf("%d%d",&L,&R); for(int i=L;i<=R;i++) { int temp = i; while(temp!=0) { if(temp%10==2) { num++; } temp = temp/10; } } printf("%d\n",num); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 320KB, 提交时间: 2022-06-16
#include <stdio.h> int judge(int num){ int flag = 0; while(num){ int res = num % 10; if(res == 2) flag ++; num /= 10; } return flag; } int main(){ int l, r, count = 0; scanf("%d %d", &l, &r); for(int i = l; i <= r; i++) count += judge(i); printf("%d", count); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 320KB, 提交时间: 2022-06-11
#include <stdio.h> #include <stdlib.h> int fun1(int s) { int n=0; while(s) { if(s%10==2) n++; s/=10; } return n; } int main() { int a,b,sum=0; scanf("%d %d",&a,&b); for(int i=a;i<=b;i++) { sum+=fun1(i); } printf("%d",sum); return 0; }