輸入多個 N (N≤30000,EOF 結束),每組輸出不大於 N 的「與 7 相關」數字:7 的倍數、或包含數字 7(如 17, 27, 70, 71...)。每行一個數,升序。
對 7 到 N 遍歷:
#include <stdio.h>
int contains_7(int n);
int main() {
int i, num;
while (scanf("%d", &num) != EOF && num <= 30000) {
for (i = 7; i <= num; i++) {
if (i % 7 == 0) printf("%d\n", i);
else if (contains_7(i)) printf("%d\n", i);
}
}
return 0;
}
int contains_7(int n) {
while (n) {
if (n % 10 == 7) return 1;
n /= 10;
}
return 0;
}
輸入: 20
輸出:
7 14 17
7(倍數含7)、14(倍數)、17(含7)、21(倍數,但 >20 不輸出)。