zoj 3622 Magic Number 【规律】
2014-08-29 16:05
176 查看
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3622
题目大意:
如果一个数字x满足如下条件:
任意加一个数字y在x的左边,都能是yx是x的倍数,比如1满足,2满足,5满足条件。
然后最开始以为1 2 5 的十倍数10 20 50 , 100 200 500 以及很多,然后后来发现了一个bug就是25 ,发现找的规律是有问题的。
后来发现是10 100 1000 10000 分别除以1 2 3 4 5 6 7 8 9 ,
如果余数是0,那说明商是满足条件的。
比如10为被除数时候 10 5 2 1
比如100为被除数时候 100 50 25 20 10 满足条件
规律就是上面那样。直接找出所有符合条件的然后一遍查找就可以了。
题目大意:
如果一个数字x满足如下条件:
任意加一个数字y在x的左边,都能是yx是x的倍数,比如1满足,2满足,5满足条件。
然后最开始以为1 2 5 的十倍数10 20 50 , 100 200 500 以及很多,然后后来发现了一个bug就是25 ,发现找的规律是有问题的。
后来发现是10 100 1000 10000 分别除以1 2 3 4 5 6 7 8 9 ,
如果余数是0,那说明商是满足条件的。
比如10为被除数时候 10 5 2 1
比如100为被除数时候 100 50 25 20 10 满足条件
规律就是上面那样。直接找出所有符合条件的然后一遍查找就可以了。
ll a[1000000]; int main(){ ll i,j,n,m; ll cnt = 0; for(i=10;i<=100000000000LL;i*=10){ for(j=10;j>=1;j--){ if(!(i%j)){ if(i/j==a[cnt-1]) continue; a[cnt++] = i / j; //cout<<a[cnt-1]<<endl; } } } while(scanf("%lld%lld",&n,&m)!=EOF){ int sum = 0; for(i=0;i<cnt;i++){ if(a[i]>=n&&a[i]<=m) sum++; if(a[i]>m) break; } printf("%d\n",sum); } return 0; }
相关文章推荐
- 【数学规律】-ZOJ-3622-Magic Number
- zoj 3622 Magic Number (找规律+打表)
- zoj 3622 Magic Number(找规律)
- ZOJ 3622 Magic Number 打表找规律
- ZOJ-#3622 Magic Number(找规律)
- zoj 3622 Magic Number
- Magic Number - ZOJ 3622 水题
- ZOJ 3622 Magic Number
- zoj 3622 Magic Number (构造?)
- zoj 3622 Magic Number
- ZOJ 3622 Magic Number(打表)
- zoj 3622 Magic Number
- ZOJ 3622 Magic Number(数)
- [ZOJ 3622] Magic Number
- ZOJ——3622 Magic Number
- ZOJ 3622 Magic Number(数)
- ZOJ 3622 —— Magic Number(水题)
- ZOJ2686 Cycle Game (博弈,找规律,搜索)
- zoj 3629 Treasure Hunt IV 打表找规律
- ZOJ 3785 What day is that day? 循环节找规律