Description
Alice and Bob
题目描述
Alice喜欢n位数,Bob喜欢能被m整除的数,请问被Alice和Bob都喜欢的数有多少个?
输入
第一行是一个整数K(K≤10000),表示样例的个数。
每个样例是一行,两个整数n(1≤n≤18),m(2≤m≤1000000)。
输出
每行输出一个样例的结果。
样例输入
4
1 2
3 2
3 3
3 10000
样例输出
5
450
300
0
Sample Input
Sample Output
Source
解析及源代码
数学问题
例如:当n为3,m为2时,
有1000-1=999和100-1=99;
又999/m=499和99/m=49。
则499-49=450
#include <stdio.h>
#include <math.h>
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int n,m;
scanf("%d%d",&n,&m);
__int64 count;
if(n==1)
{
count=9/m;
printf("%I64d\n",count+1);
}
else
{
__int64 a,b;//int a,b;太小,不能满足
a=pow(10,n)-1;//pow()函数返回的是浮点型数,pow()-1后,因为a是整型数,将会自动转换成整型数。
a/=m;//这里是整型计算,将会忽略小数点,不会四舍五入
b=pow(10,n-1)-1;//同上
b/=m;
count=a-b;
printf("%I64d\n",count);
}
}
return 0;
}