输入一个正整数 输出数据中出现7的次数
时间: 2023-05-17 08:04:58 浏览: 62
这个问题可以使用循环和取余运算来解决。具体的实现方式如下:
```
#include <iostream>
using namespace std;
int main() {
int n, count = 0;
cin >> n;
while (n > 0) {
if (n % 10 == 7) {
count++;
}
n /= 10;
}
cout << count << endl;
return 0;
}
```
这段代码可以接受一个正整数作为输入,然后统计其中出现数字7的次数,并输出结果。
相关问题
py输入一个正整数N,检查N中重复出现的数字,并打印出一份列表,显示每个数字在正整数N中出现的次数。
好的,这里是 Python 代码实现:
```python
def find_duplicates(n):
digits = str(n)
counter = {}
for digit in digits:
if digit in counter:
counter[digit] += 1
else:
counter[digit] = 1
duplicates = [digit for digit in counter if counter[digit] > 1]
for digit in duplicates:
print(f"{digit} appears {counter[digit]} times in {n}.")
# 测试
find_duplicates(123456789)
```
函数 `find_duplicates(n)` 接受一个正整数 `n`,将其转化为字符串 `digits`,使用字典 `counter` 统计每个数字出现的次数,然后将出现次数大于 1 的数字存入列表 `duplicates` 中,并输出每个重复出现的数字在 `n` 中出现的次数。
在主程序中调用函数 `find_duplicates(n)`,传入测试数据进行测试。
请用C语言实现输入n个正整数,按照数字出现的顺序输出其中出现次数大于k的数字。
好的,以下是用C语言实现该算法的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 1000
int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int n, k;
int nums[MAX_N], count[MAX_N] = {0}, res[MAX_N], len = 0;
printf("请输入n和k:\n");
scanf("%d%d", &n, &k);
printf("请输入%d个正整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
qsort(nums, n, sizeof(int), cmp); // 排序
for (int i = 0; i < n; i++) {
int j = i;
while (j < n && nums[j] == nums[i]) {
j++;
}
count[nums[i]] = j - i; // 记录每个数字出现的次数
i = j - 1;
}
for (int i = 0; i < n; i++) {
if (count[nums[i]] > k) { // 找出出现次数大于k的数字
int j;
for (j = 0; j < len; j++) {
if (res[j] == nums[i]) {
break;
}
}
if (j == len) { // 避免重复添加
res[len++] = nums[i];
}
}
}
printf("出现次数大于%d的数字为:\n", k);
for (int i = 0; i < len; i++) {
printf("%d ", res[i]);
}
printf("\n");
return 0;
}
```
首先,我们定义了一个`cmp`函数用于排序,然后读入`n`和`k`,以及`n`个正整数到`nums`数组中。接着,使用`qsort`函数对`nums`数组进行排序。
然后,我们遍历`nums`数组,记录每个数字出现的次数到`count`数组中。接着,再遍历`nums`数组,找出出现次数大于`k`的数字,并将其加入到结果数组`res`中,避免重复添加。
最后,输出结果数组`res`中的数字即可。
需要注意的是,由于本题中数字大小不超过1000,因此我们可以使用一个长度为1000的数组`count`来记录每个数字出现的次数。如果数字范围很大,需要使用哈希表等数据结构来记录。