zhangjinxuan 发表于 2023-1-26 11:57:12

【C++板块提升计划】梦想护卫舰 第14期 取余

本帖最后由 zhangjinxuan 于 2023-1-27 22:41 编辑


上一关:细胞分裂
梦想护卫舰 第14期 高精度取余

告别 hanks 博士,梦想护卫舰 再次出发,这时,海面上出现了一头鲸鱼

原来,鲸鱼有一道题目不会,想了 1e9 + 7 天都没有想出来,而鲸鱼听说 聪明才智 的你们会经过这里,便想向你们请教

题目是这样的:

有两个数 A, B。A 是一个合法的正整数,请你求出 A % B 等于几?

输入格式
A B

输出格式
【A % B 的结果】

输入样例
888333 823

输出样例
316

数据范围
以下记 n = A的长度
对于 100% 的数据,1 <= n <= 1e7,1 <= B <= 2e9
对于其中 60% 的数据,1 <= n <= 1000

时间限制:500ms (友情提示,C++评测机跑 1e7 只要 200ms)
空间限制:256mb

注意:本题个人原创,转载请注明出处

static/image/hrline/1.gif

答案与解析
**** Hidden Message *****

最佳战士
名字:dolly_yos2
奖励:最佳答案+5鱼币5荣誉

static/image/hrline/1.gif

鲸鱼为了感谢你,给了你一张藏宝图……

To be continue……

下一关:画树

dolly_yos2 发表于 2023-1-26 15:31:39

应该是不需要高精度的
版本一(任意输入方式):#include <iostream>
#include <string>
int main(){
    std::string a;
    uint64_t b;
    uint64_t result = 0;
    std::cin >> a >> b;
    for(const auto c: a){
      result = ((result << 3) + (result << 1) + (c - '0')) % b;
    }
    std::cout << result;
    return 0;
}
版本二(需要将输入重定向到文件):#include <unistd.h>
#include <sys/stat.h>
int main(){
    enum{ BufferSize = 1024 };
    struct stat status;
    unsigned char buffer;
    ssize_t effective_length;
    if(fstat(STDIN_FILENO, &status) == -1){
      return 1;
    }
    off_t seek_offset = status.st_size > 11 ? -11 : -status.st_size;
    if(lseek(STDIN_FILENO, seek_offset, SEEK_END) == -1){
      return 1;
    }
    effective_length = read(STDIN_FILENO, buffer, BufferSize);
    unsigned long b = 0;
    ssize_t i = 0;
    while(buffer != ' ');
    while(i < effective_length && buffer >= '0' && buffer <= '9'){
      b = (b << 3) + (b << 1) + (buffer - '0');
    }
    lseek(STDIN_FILENO, 0, SEEK_SET);
    unsigned long result = 0;
    effective_length = i = 0;
    while(1){
      effective_length = read(STDIN_FILENO, buffer, BufferSize);
      for(i = 0; i < effective_length; i++){
            if(buffer == ' ') goto end;
            result = ((result << 3) + (result << 1) + (buffer - '0')) % b;
      }
    }
    end:
    i = 12;
    effective_length = 0;
    if(result == 0){
      effective_length = 1;
      buffer = '0';
    }
    while(result){
      effective_length++;
      buffer = (result % 10) + '0';
      result /= 10;
    }
    write(STDOUT_FILENO, buffer + i + 1, effective_length);
    return 0;
}

人造人 发表于 2023-1-26 12:17:09

你有什么话要说吗?
^_^

sh-5.1$ cat main.cpp
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>

using boost::multiprecision::cpp_int;

int main() {
    cpp_int a, b;
    std::cin >> a >> b;
    std::cout << a % b << std::endl;
    return 0;
}
sh-5.1$ ./main
888333 823
316
sh-5.1$

高山 发表于 2023-1-26 12:59:14

厉害,这么多关了,真是给我了个大大的惊喜。我还以为你们都不发了呢。

sfqxx 发表于 2023-1-26 13:35:40

@zhangjinxuan 下一个我发,已经有经验了{:5_109:}

元豪 发表于 2023-1-26 13:47:45

高精度,不存在的~~{:10_256:}{:10_256:}

x = input().split()
print(int(x) % int(x))

dolly_yos2 发表于 2023-1-26 15:41:23

本帖最后由 dolly_yos2 于 2023-1-26 21:22 编辑

怪事,我的回答为什么会被审核,待会再看吧
题解可能需要检查一下,目前有严重的问题

sfqxx 发表于 2023-1-26 17:16:16

元豪 发表于 2023-1-26 13:47
高精度,不存在的~~

准备报废电脑

zhangjinxuan 发表于 2023-1-26 18:51:21

高山 发表于 2023-1-26 12:59
厉害,这么多关了,真是给我了个大大的惊喜。我还以为你们都不发了呢。

{:10_256:}

zhangjinxuan 发表于 2023-1-26 18:51:54

sfqxx 发表于 2023-1-26 13:35
@zhangjinxuan 下一个我发,已经有经验了

好的,可以,自己选题哈{:10_256:}

zhangjinxuan 发表于 2023-1-26 18:52:24

dolly_yos2 发表于 2023-1-26 15:41
怪事,我的回答为什么会被审核,待会再看吧
题解可能需要检查一下,目前有严重的问题

没必要真的去算{:10_282:}

zhangjinxuan 发表于 2023-1-26 18:54:44

元豪 发表于 2023-1-26 13:47
高精度,不存在的~~

超时了~~~~~~哈哈哈哈哈{:10_279:}
只有 60 分{:10_279:}
{:10_279:}
红眼特效播放中!!

https://fishc.com.cn/static/image/smiley/ARU/aru-1x-1_050.png
哈哈哈哈哈哈{:9_217:}
哎呀,python,没想到你还有今天,哈哈哈哈哈哈{:9_217:}

zhangjinxuan 发表于 2023-1-26 19:06:07

元豪 发表于 2023-1-26 13:47
高精度,不存在的~~

真超时了,我搞了个数据生成器,哈哈,1e6 就超时啦~~~~
https://fishc.com.cn/static/image/smiley/ARU/aru-1x-1_050.png
https://fishc.com.cn/static/image/smiley/ali/ali4.gif

zhangjinxuan 发表于 2023-1-26 19:10:08

dolly_yos2 发表于 2023-1-26 15:41
怪事,我的回答为什么会被审核,待会再看吧
题解可能需要检查一下,目前有严重的问题

严重……问题?我的题解?标程有问题?{:10_277:}

zhangjinxuan 发表于 2023-1-26 19:11:50

dolly_yos2 发表于 2023-1-26 15:41
怪事,我的回答为什么会被审核,待会再看吧
题解可能需要检查一下,目前有严重的问题

感谢提醒,我 n 忘了初始化{:10_266:}
我真的……太尴尬……太丢人了{:9_240:}

元豪 发表于 2023-1-26 19:20:50

zhangjinxuan 发表于 2023-1-26 19:06
真超时了,我搞了个数据生成器,哈哈,1e6 就超时啦~~~~

啊这......{:10_277:}

sfqxx 发表于 2023-1-26 19:29:56

zhangjinxuan 发表于 2023-1-26 18:51
好的,可以,自己选题哈

自己选????{:10_306:}

sfqxx 发表于 2023-1-26 19:30:35

https://fishc.com.cn/static/image/smiley/ARU/aru-1x-1_037.png

dolly_yos2 发表于 2023-1-26 19:37:46

zhangjinxuan 发表于 2023-1-26 19:11
感谢提醒,我 n 忘了初始化
我真的……太尴尬……太丢人了

第21行是不是也有一点问题?

zhangjinxuan 发表于 2023-1-26 19:49:32

dolly_yos2 发表于 2023-1-26 19:37
第21行是不是也有一点问题?

我太糊涂了{:10_266:}

直接从 12期 那里搬过来的,有点{:10_282:}
页: [1] 2
查看完整版本: 【C++板块提升计划】梦想护卫舰 第14期 取余