• 昨天看到某群有人发了个链接(刚开始还以为是小孩子玩的XX养成游戏 23333)

    地址: https://paiza.jp/poh/ando/

    点开 Sign Up 之后原来是写代码过题,解锁物品,于是,装逼的机会来啦。

    总共有 10 道题,4 栏分为 4 个难度(前三栏都是没难度好吧)

    因为系统略坑爹,你提交过的代码都被吞掉了,只有个验证是否通过的值,所以有些代码我都是在网页编辑器里直接写,自信一遍过的(#斜眼)。

    说一下最后一栏吧(好像也没难度)

    眼镜:题目就是大概给你两个图形,在第一个图形中找出第二个图形的匹配,这个没啥难度,几百字节的 c艹 代码就能搞定, 存两个 vector 对比就行,我的代码弄丢了,就不发了。。

    圣诞服:这也没难度,然而我的代码也丢了。。。。。

    最后一个,泳装:

    就是先乘阶,再去0,然后留最后 9 位,再去除前面连续的 0,一想这个简单啊,于是我使用 gmp_fact

    尼玛!没链接! 不用 GMP 算的话,手写的乘法算起来就非常费劲了,而且需要大量的时间, CPU 和内存,在这种 OJ 环境是不可能的。

    所以我们边循环边来(正好它这个输入范围不是很大)

    int input = xxx;
    int64_t x = 1;
    int64_t max = powl(10, 11);
    for(int i = 0;i < input;i++){
        x *=(int64_t)(i+1);
        while(x % 10 == 0){
            x /= 10;
        }
        x = x % max;
    }
    int64_t v = powl(10, 9);
    printf("%lld",x % v);
    

    这样就过啦

    全部解锁之后大概是这个样子(雾