C语言中,求1到N之间,含7的整数和他的八进制为7的整数,输入一个N输出满足条件的数字个数
时间: 2023-02-07 19:41:04 浏览: 79
在 C 语言中,可以使用以下代码来计算 1 到 N 之间,含有 7 或者八进制为 7 的整数的个数:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("输入一个数字 N:");
scanf("%d", &n);
int count = 0;
for (int i = 1; i <= n; i++) {
if (i % 10 == 7 || i / 10 % 10 == 7 || i / 100 % 10 == 7) {
count++;
} else if (i % 8 == 7) {
count++;
}
}
printf("满足条件的数字个数为:%d\n", count);
return 0;
}
```
在这段代码中,我们使用一个 for 循环来遍历 1 到 N 之间的数字。对于每个数字,我们检查它的个位、十位和百位是否为 7,如果是,就将计数器 count 加 1。我们还检查这个数字是否是八进制下的 7,如果是,也将计数器 count 加 1。最后,我们输出计数器的值来得到满足条件的数字的个数。
相关问题
C语言中,求1到N之间,含7的整数和他的八进制为7的整数,输入一个N输出满足条件的数字个数,N的范围是小于10的五次方
你好!这是一个简单的统计问题。
首先,你需要一个循环来遍历所有的数字 1 到 N。然后,你需要判断这个数字是否含有数字 7,或者以八进制表示时是否以数字 7 开头。如果满足任意一个条件,就将计数器加 1。最后,输出计数器的值即可。
下面是一个 C 语言代码示例:
```
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入 N
int count = 0; // 计数器
for (int i = 1; i <= n; i++) {
if (i % 10 == 7 || i / 10 % 10 == 7 || i / 100 % 10 == 7 || i / 1000 % 10 == 7 || i / 10000 % 10 == 7) {
// 判断是否含有数字 7
count++;
} else {
int tmp = i;
while (tmp > 0) {
if (tmp % 8 == 7) {
// 判断八进制表示是否以数字 7 开头
count++;
break;
}
tmp /= 8;
}
}
}
printf("%d", count); // 输出结果
return 0;
}
```
希望这对你有帮助!
C语言小数和八进制中都没有7的整数,在1和N之间(包括)有多少个这样的整数.输入一个N输出满足条件的整数个数
我们可以枚举每个数字, 判断它是否满足条件。具体来说,我们可以用数学方法判断一个数是否含有数字 7, 同时也可以用 C 语言的函数 `fmod` 判断一个数是否是小数。
具体的,我们可以这样写代码:
```
#include <stdio.h>
#include <math.h>
int main() {
// 读入 N
int N;
scanf("%d", &N);
// 计数器,统计满足条件的数字个数
int cnt = 0;
// 枚举 1 到 N(包括)之间的所有数字
for (int i = 1; i <= N; i++) {
// 判断 i 是否含有数字 7
if (i % 10 == 7 || i / 10 == 7) {
// i 含有数字 7,跳过
continue;
}
// 判断 i 是否是小数
if (fmod(i, 1) != 0) {
// i 是小数,跳过
continue;
}
// i 满足条件,计数器加 1
cnt++;
}
// 输出统计结果
printf("%d\n", cnt);
return 0;
}
```
在这段代码中,我们枚举了从 1 到 N(包括)之间的所有数字,对于每一个数字 i,我们先判断它是否含有数字 7,如果含有就跳过;然后再判断它是否是小数,如果是就跳过;否则就把计数器加 1。最后我们输出计数器的值,就得到了满足条件的数