这个题非常简单但是非常的坑,有多坑呢?只差一个break,我估计这就是很多人过不了这个题的原因
上代码:
#include <stdio.h> int main() { int n,i,yu,j; scanf("%d", &n); for(i=1,j = 1;j<=n;j++)/*j控制循环,i用于计算*/ { i = j; if (i % 3 == 0) { while(i != 0) /*判断数位是否有5*/ { yu = i % 10; i = i /10; if(yu == 5) { printf("%d\n", j); /*这里如果没有break,很快能会重复打印出数位有多个5的数字,引起报错*/ } } } } return 0; }