题目描述

题解

试计算在区间 1 到 n的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到 11中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。

输入输出格式

输入格式:

2个整数n,x之间用一个空格隔开。

输出格式:

1个整数,表示x出现的次数。

输入输出样例

我的实现

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
int main() {
int ori,num,flag;
char ch[10]={0};
scanf("%d%d",&ori,&num);
for (int i = 1; i <= ori; ++i) {
sprintf(ch,"%d",i);//数值转化位字符串
for (int j = 0; j < strlen(ch); ++j) {
if (int(ch[j]-'0')==num) flag++;
}
}
printf("%d",flag);
return 0;
}

也可以:

int main() {
int ori, num, flag;
char ch[10] = {0};
scanf("%d%d", &ori, &num);
for (int i = 1; i <= ori; ++i) {
int temp = i;
while (temp != 0) {
if (temp % 10 == num) {
flag++;
}
temp /= 10;
}
}
printf("%d", flag);
return 0;
}

学到的点:

1、 sprintf(,"%d",)将数字转化为字符数组

2、 数字char转化为数字int:int(ch[j]-'0')

3、strlen()求字符数组长度

4、取一个数字的全部位数可以不断求余

最新文章

  1. Spring系列之beanFactory与ApplicationContext
  2. PHP如何批量生成手机号-使用PHP 如何生成一组不重复的手机号码?
  3. Java程序编译和运行的过程
  4. iOS线程
  5. Java之组合数组2
  6. BZOJ 1050 旅行
  7. 目前常用AD/DA芯片简介
  8. android基于XMPP的消息推送机制
  9. php:sprintf
  10. iOS 约束,设置文字控制的高度
  11. centos 如何关闭防火墙?
  12. 初识Djiango
  13. 学会学习:高效学习方式(使用vscode-snippet有感)
  14. shell命令,从字符串中提取数字
  15. mysql下批量清空某个库下的所有表(库不要删除,保留空库)
  16. U深度U盘启动盘制作教程
  17. UML 图C#
  18. JQuery 基本知识,选择器,事件,DOM操作
  19. NYOJ 252 01串 普通dp
  20. BZOJ5302 HAOI2018奇怪的背包(动态规划)

热门文章

  1. ios26--kvc
  2. Potentiometers
  3. window环境下在anconda中安装opencv
  4. luogu 4427 求和
  5. luogu 3865 【模板】ST表
  6. 5 Application 对象
  7. POJ1389 Area of Simple Polygons 线段树
  8. E20171229-hm
  9. E20170609-ts
  10. bzoj1216 操作系统(优先队列模拟)