ZOJ3622:Magic Number
2013-11-18 20:18
239 查看
Apositivenumberyiscalledmagicnumberifforeverypositiveintegerxitsatisfiesthatputytotherightofx,
whichwillformanewintegerz,zmody=0.
whichwillformanewintegerz,zmody=0.
Input
Theinputhasmultiplecases,eachcasecontainstwopositveintegersm,n(1<=m<=n<=2^31-1),proceedtotheendoffile.Output
Foreachcase,outputthetotalnumberofmagicnumbersbetweenmandn(m,ninclusively).SampleInput
11 110
SampleOutput
1 4
题意:对于一个整数y,我们可以任何整数x放在Y前,组成新的数XY都能整除y,问区间内这个y有几个
思路:我们可以发现这些数都是由规律的,也就是通过1,2,5,25,125这几个数推导出来的,然后这道题就是个简单的打表了
#include<stdio.h>
#include<string.h>
#include<algorithm>
usingnamespacestd;
inta1[10]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
inta2[10]={2,20,200,2000,20000,200000,2000000,20000000,200000000,2000000000};
inta3[10]={5,50,500,5000,50000,500000,5000000,50000000,500000000};
inta4[10]={25,250,2500,25000,250000,2500000,25000000,250000000};
inta5[10]={125,1250,12500,125000,1250000,12500000,125000000,1250000000};
intmain()
{
intans,n,m,i;
while(~scanf("%d%d",&n,&m))
{
ans=0;
if(n>m)
swap(n,m);
for(i=0;i<10;i++)
if(n<=a1[i]&&a1[i]<=m)
ans++;
for(i=0;i<10;i++)
if(n<=a2[i]&&a2[i]<=m)
ans++;
for(i=0;i<9;i++)
if(n<=a3[i]&&a3[i]<=m)
ans++;
for(i=0;i<8;i++)
if(n<=a4[i]&&a4[i]<=m)
ans++;
for(i=0;i<8;i++)
if(n<=a5[i]&&a5[i]<=m)
ans++;
printf("%d\n",ans);
}
return0;
}
相关文章推荐
- Magic Number (zoj3622)
- ZOJ 3622 Magic Number
- 程序中避免使用magic number
- zoj 3622 Magic Number 【规律】
- ZOJ 3622 Magic Number(数)
- Magic number (programming) from Wikipedia(0xCCCCCCCC、0xCDCDCDCD、0xFEEEFEEE)
- zoj 3622 Magic Number (找规律+打表)
- magic number
- ZOJ-#3622 Magic Number(找规律)
- 一个快速double转int的方法(利用magic number)
- magic number
- hdu 4323 Magic Number 2012多校训练第三场1004题 BK树
- hdu(4323)HDU 4323 Magic Number 编辑距离(经典DP)
- ZOJ——3622 Magic Number
- CF EDU #8 D - Magic Number
- 计算机中的「魔数」(magic number)
- hdu4323-Magic Number-2012 Multi-University Training Contest 3题解
- Hdu 4323 Magic Number
- hdu 4323 Magic Number (dp,编辑距离)
- zoj 3622 Magic Number