数组--P1980 计数问题
2024-09-03 03:38:31
题目描述
题解
试计算在区间 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、取一个数字的全部位数可以不断求余
最新文章
- Spring系列之beanFactory与ApplicationContext
- PHP如何批量生成手机号-使用PHP 如何生成一组不重复的手机号码?
- Java程序编译和运行的过程
- iOS线程
- Java之组合数组2
- BZOJ 1050 旅行
- 目前常用AD/DA芯片简介
- android基于XMPP的消息推送机制
- php:sprintf
- iOS 约束,设置文字控制的高度
- centos 如何关闭防火墙?
- 初识Djiango
- 学会学习:高效学习方式(使用vscode-snippet有感)
- shell命令,从字符串中提取数字
- mysql下批量清空某个库下的所有表(库不要删除,保留空库)
- U深度U盘启动盘制作教程
- UML 图C#
- JQuery 基本知识,选择器,事件,DOM操作
- NYOJ 252 01串 普通dp
- BZOJ5302 HAOI2018奇怪的背包(动态规划)