C语言小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少?
时间: 2024-06-14 16:03:43 浏览: 85
以下是C语言实现小明对数位中含有 2、0、1、9 的数字求和的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int n, sum = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int t = i;
char str[10];
sprintf(str, "%d", t); // 将数字转换为字符串
int flag = 0;
for (int j = 0; j < strlen(str); j++) {
if (str[j] == '2' || str[j] == '0' || str[j] == '1' || str[j] == '9') {
flag = 1;
break;
}
}
if (flag) {
sum += t;
}
}
printf("%d\n", sum);
return 0;
}
```
阅读全文