zoj 3622 Magic Number 【规律】

题目链接: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 满足条件

规律就是上面那样。直接找出所有符合条件的然后一遍查找就可以了。

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;
}
时间: 2025-01-18 09:44:39

zoj 3622 Magic Number 【规律】的相关文章

ZOJ 3622 Magic Number 打表找规律

A - Magic Number Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3622 Appoint description: Description A positive number y is called magic number if for every positive integer x it satisfies that

zoj 3622 Magic Number(找规律)

唉------写的相当的乱,状态十分不好. 可以求每个数前面有多少个magic number,然后相减即可. #include<iostream> #include<cmath> using namespace std; int num(int x) { int sum=0; while(x>0) { sum++; x/=10; } return sum-3; } double pow(int b) { double s=1; for(int i=1; i<=b; i+

ZOJ 3622 Magic Number(数)

题意  假设一个正整数y满足  将随意正整数x放到y的左边得到的数z满足 z%y==0  那么这个数就是个Magic Number   给你一个范围  求这个范围内Magic Number的个数 令 l表示y的位数  ly=10^l  那么z=x*ly + y  要z%y==0   easy看出  仅仅需 x*ly%y==0 又由于x是随意的  所以一个Magic Number必须满足 ly%y==0 y<2^31  所以l最大为10 直接枚举l  找到全部符合的y即可了 当 ly%y==0  

ZOJ 3629(找规律)

Treasure Hunt IV Time Limit: 2 Seconds      Memory Limit: 65536 KB Alice is exploring the wonderland, suddenly she fell into a hole, when she woke up, she found there are b - a + 1 treasures labled afrom b in front of her. Alice was very excited but

ZOJ 3768Continuous Login(找规律然后二分)

Continuous Login Time Limit: 2 Seconds      Memory Limit: 131072 KB      Special Judge Pierre is recently obsessed with an online game. To encourage users to log in, this game will give users a continuous login reward. The mechanism of continuous log

ZOJ 2477 Magic&#160;Cube(魔方)

ZOJ 2477 Magic Cube(魔方) Time Limit: 2 Seconds      Memory Limit: 65536 KB This is a very popular game for children. In this game, there's a cube, which consists of 3 * 3 * 3 small cubes. We can unwrap the cube, it will become like this: 这是个有名的儿童游戏.游戏

magic number介绍

magic number:魔数,这是放在linux的目录中的文件信息块中的一个标识符,一般只有几位,用来标识该文件是什么类型的文件,可以被什么样的应用使用.这个魔数不是固定的,有时候一个文件信息中的魔数可能会不断变化.这个东西不重要的,对用户造不成多少影响.两个例子:1.ELF文件的头部,前4个字节是魔数.这个常用于识别文件类型等.linux上,二进制的可执行文件的前四个字节是7f45,而在AIX上,二进制可执行文件的前四个字节是0x01df.2.内核程序中,给一些 IO 操作进行编号时,也会用

Magic Number(Levenshtein distance算法)

Magic Number Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4323 Description There are many magic numbers whose lengths are less than 10. Given some queries, each contains a single number, if t

HDU 4279 Number 规律题

题意: 定义函数F(x) : 区间[1,x]上的y是满足:GCD(x,y)>1 && x%y>0的 y的个数. 问:对于任意区间[l,r] 上的F(l···r) 有几个函数值是奇数的. 打表找规律. 打的是[1,x]区间的结果 把所有结果不相同的值打出来(因为结果是递增的,所以只观察不相同的结果) 发现:ans = x/2-2 || x/2-1 再把所有结果不同 && x/2-1的值打出来 发现 sqrt(x) &1 == 1 得到:ans = x/2-