统计1-10000之间所有数字中,包含数字3的数字的个数两种方法()
时间: 2024-03-19 17:43:37 浏览: 70
方法一:使用循环遍历每个数字,判断其中是否包含数字3并计数。
```python
= 0
for i in range(1, 10001):
if '3' in str(i):
count += 1
print(count)
```
方法二:利用数字3在每个位数上出现的规律,计算包含数字3的数字个数。
```python
# 计算1-9999之间的数字中包含数字3的数字个数
count = 0
for i in range(1, 10000):
if i % 10 == 3 or i // 10 % 10 == 3 or i // 100 % 10 == 3 or i // 1000 == 3:
count += 1
# 加上10000中的数字3
count += 1
print(count)
```
两种方法得到的结果应该是一样的,都是2729个。
相关问题
sdut-使用函数统计数字字符在某数字中出现的个数
可以使用一个函数来统计数字字符在某数字中出现的个数。具体步骤如下:
1. 定义一个函数,接收两个参数:一个是要统计的数字,另一个是要查找的数字字符。
2. 将要统计的数字转换成字符串,方便查找。
3. 遍历字符串中的每一个字符,判断是否与要查找的数字字符相等,如果相等,计数器加1。
4. 遍历完字符串后,返回计数器的值,即为要查找的数字字符在数字中出现的个数。
下面是一个示例代码:
```python
def count_digit(num, digit):
count = 0
num_str = str(num)
for char in num_str:
if char == str(digit):
count += 1
return count
```
使用示例:
```python
num = 123456789
digit = 5
count = count_digit(num, digit)
print(f"{digit}在{num}中出现了{count}次。")
```
输出结果:
```
5在123456789中出现了1次。
```
计算从输入的两个整数a到b之间所有数字中包含数字2的个数(c++)
在C++中,你可以编写如下的代码来计算从输入的两个整数`a`到`b`之间所有数字中包含数字2的个数:
```cpp
#include <iostream>
using namespace std;
int countNumbersWithTwo(int a, int b) {
int count = 0;
for (int i = a; i <= b; ++i) {
if (std::any_of(std::begin(i), std::end(i), [](char c) { return c == '2'; })) {
count++;
}
}
return count;
}
int main() {
int start, end;
cout << "请输入起始数字a: ";
cin >> start;
cout << "请输入结束数字b: ";
cin >> end;
if (start >= end) {
cout << "开始数字不能大于或等于结束数字,已自动调整。\n";
swap(start, end);
}
int result = countNumbersWithTwo(start, end);
cout << "从" << start << "到" << end << "之间包含数字2的个数是: " << result << endl;
return 0;
}
```
这个程序定义了一个名为`countNumbersWithTwo`的函数,它接受两个整数作为参数,然后遍历这个范围内的每个数字,使用`std::any_of`和lambda表达式检查每个数字是否包含字符'2'。`main`函数负责获取用户的输入并调用该函数。
阅读全文