描述
输出 1到n之间 的与 7 有关数字的个数。
一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)
数据范围:1≤n≤30000
输入描述:
一个正整数 n 。( n 不大于 30000 )
输出描述:
一个整数,表示1到n之间的与7有关的数字个数。
示例1
输入:20
输出:3
说明:输入20,1到20之间有关的数字包括7,14,17共3个。
最初想从个位逐渐往上走,去判断各位是否有7,结果发现从最高位往个位走才是正确的,否则会漏情况
#include <stdio.h>
int judge7(int n)
{
while(n>0)
{
if(n%10==7)
{
return 1;
}
else {
n/=10;
}
}
return 0;
}
int main() {
int i,n,count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if((judge7(i))||(i%7==0))
count++;
}
printf("%d",count);
return 0;
}