解题思路:
暴力法:
1、首先排除 小于7的数值;
2、先 统计能不7整除的 数字;
3、统计最高位到 最低位上有7 的数字,
#include <stdio.h>
int main(void) {
int data = 0;
while (scanf("%d", &data) != EOF) {
int nums = 0;
if (data < 7) {
printf("%d\n", nums);
continue;
}
for (int i = 7; i <= data; i++) {
if ((i%7) == 0) {
nums++;
continue;
}
int temp = i;
while (temp > 10) {
if((temp%10) ==7) { //统计个位 有7 的数字
nums++;
break;
} else {
if ((temp/10) ==7) { // 统计 其他位 是否为7
nums++;
break;
}
temp = temp/10; // 位数变换
}
}
}
printf("%d\n", nums);
}
return 0;
}