HDU4722Good Numbers 找规律

/*
基本规律为 n/10 + (1或0)
 加1的情况为:n/10*10 到 n  有满足条件的  比如:997: 99 + (990到997是否有满足条件的,如果有则加1)
 */

#include
#include
int find(__int64 n)
{
	__int64 m,j,i,k;
	m=n;
	i=n/10*10;
    for(;i<=m;i++)
	{
        int s=0;
		k=i;
		while(k)
		{
			s=s+k%10;
			k=k/10;
		}
		if(s%10==0) return 1;
	}
	return 0;
}
__int64 okboy(__int64 n)
{
	if(n<0) return 0;
	if(n<=10) return 1;
	return n/10+find(n);
}
int main()
{
	__int64 n,m;
	int t,cas=0;
	__int64 a,b;
	scanf("%d",&t);
	while(t--)
	{
        scanf("%I64d%I64d",&a,&b);
        printf("Case #%d: %I64d\n",++cas,okboy(b)-okboy(a-1));
	} 
	return 0;
}

你可能感兴趣的:(群论,数论,贪心和枚举)