c语言杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如:62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。 你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。 【输入形式】 输入整数对m和n(0<m≤n<1000000),空格分隔 【输出形式】 输出[m,n]区间内一共有多少个数不含有不吉利数字
时间: 2024-04-04 08:34:22 浏览: 79
不吉利数字的C语言实现
以下是C语言的实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
int m, n, count = 0;
scanf("%d%d", &m, &n);
for (int i = m; i <= n; i++) {
char str[7];
sprintf(str, "%d", i); // 将数字转换为字符串
if (strstr(str, "4") || strstr(str, "62")) {
continue; // 包含不吉利数字,跳过
}
count++;
}
printf("%d\n", count);
return 0;
}
```
首先,我们读入输入的区间端点 m 和 n。然后,我们用一个循环遍历区间内的每个整数,将其转换为字符串。接下来,我们使用 `strstr` 函数在字符串中搜索是否包含了不吉利数字(即“4”或“62”),如果包含了,则跳过该数;否则,我们就将计数器 count 加 1。最后,输出 count 的值即可。
需要注意的是,在将整数转换为字符串时,我们需要为字符串分配足够的空间,以存储最长的整数(即 1000000)。因此,我们可以将字符串长度设为 7,这样可以容纳 6 位数字和一个字符串结束符号。另外,我们使用 `sprintf` 函数将整数转换为字符串,其作用类似于 Python 中的 `str` 函数。
阅读全文