当前位置: 首页 > news >正文

规律打表,找循环节,类似2016湘潭那个2016

2991:2011

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
1000ms
内存限制: 
65536kB
描述
已知长度最大为200位的正整数n,请求出2011^n的后四位。
输入
第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,

每行都有一个正整数n,n的位数<=200
输出
每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0
样例输入
3
5
28
792
样例输出
1051
81
5521

思路:

2011的n次方,这个n很大,小于等于200位,一看就是字符串读入,因为只取最后四位,这时候要推测出题者用意,2011的次方后四位是否会出现一个循环节。

想起2016年湘潭赛那个2016,也是快速乘法,发现有循环节之后更加好做。

这里一样。预处理打表,注释部分,打出i的出现相同的a[i]下标,发现1 501 1001 1501。所以循环节是500.

因为只留最后4位,所以每次打表的时候取模10000,留下最后四位就好。

因为500一循环,只要最大三位数即可,没有三位的直接转换。

注意n的位数,一开始只开了25,发生玄学问题。。。。(25放全局可以过,250放局部可以过,RE)

#include <bits/stdc++.h>

using namespace std;
const int maxn = 10000+5;
int a[maxn] = {0,2011};

void pre()
{
    for(int i = 2; i <= 10000; i++)
    {
        a[i] = (a[i-1]*2011)%10000;
    }
}
int main()
{   
   
    pre();
//   for(int i = 1; i <= 10000; i++) {
//    if(a[i]==2011) {
//        cout<<i<<endl;
//    }
//   }
    int T;
    scanf("%d",&T);
    while(T--)
    {      
        char str[250];
        int n = 0;
        scanf("%s",str);
        int len = strlen(str);
        if(len>=3)
        {
//        for(int i = len-1,j = 0; i >= len-3; i--,j++) {
//            cout<<(pow(10,j))<<endl;
//            n += (str[i]-'0')*(pow(10,j));
//            }
            for(int i = len-3; i <= len - 1; i++)
            {
                n = n*10 + str[i]-'0';
            }
        }
        else
        {
            n = atoi(str);
        }
        n %= 500;
        printf("%d\n",a[n]);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/zhangmingzhao/p/7199365.html

相关文章:

  • HTML 5
  • 机器学习入门之八:机器学习的思考--计算机的潜意识(转载)
  • 两个栈实现一个队列
  • 单点登录与联合登录
  • 用SourceTree轻松Git项目图解
  • DataGridView.DataSource= list(Of T)
  • 前端小功能开发过程小结
  • centos 开启Telnet 服务
  • Linux双网卡绑定bond详解
  • 调试问题杂记
  • 微服务中的异步消息通讯
  • Jenkins使用教程之用户权限管理(包含插件的安装)
  • Lucene5学习之FunctionQuery功能查询
  • linux 系统函数之 (dirname, basename)【转】
  • [转] Java关键字final、static使用总结
  • SegmentFault for Android 3.0 发布
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • Django 博客开发教程 8 - 博客文章详情页
  • Git的一些常用操作
  • iOS编译提示和导航提示
  • JavaScript中的对象个人分享
  • Mocha测试初探
  • MySQL数据库运维之数据恢复
  • React组件设计模式(一)
  • 构建工具 - 收藏集 - 掘金
  • 机器学习中为什么要做归一化normalization
  • 前端攻城师
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 跳前端坑前,先看看这个!!
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​力扣解法汇总946-验证栈序列
  • #《AI中文版》V3 第 1 章 概述
  • #define,static,const,三种常量的区别
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (力扣)循环队列的实现与详解(C语言)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转) Face-Resources
  • (转载)Google Chrome调试JS
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET Core 中的路径问题
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net core使用ef 6
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .net专家(张羿专栏)
  • ??javascript里的变量问题
  • [ IO.File ] FileSystemWatcher
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ 数据结构 - C++]红黑树RBTree
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [20181219]script使用小技巧.txt
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标