求小于等于给定n(范围0~100000)的整数范围内,所有能被6整除或者数字中含有6的整数个数。
有点笨的方法。。有优化方法的请赐教
#include "stdio.h"
int fun(int n)
{
int i = 0, cnt = 0;
for(i; i<n; i++)
{
//判断 能否被被6整除 和 各个位数字是否有6
if((i%6 == 0) || (i%10 == 6) || ((i/10)%10 ==6) || ((i/100)%10 == 6) || ((i/1000)%10 == 6) || ((i/10000)%10 == 6))
cnt++;
}
return cnt;
}
int main(void)
{
int n = 0;
int cnt;
scanf("%d", &n);
if(n<0 || n >100000)
{
printf("please input the number: 0~100000\n");
scanf("%d", &n);
}
cnt = fun(n);
printf("cnt = %d\n", cnt);
return 0;
}