zoukankan      html  css  js  c++  java
  • 2991:2011 求2011^n的后四位。

    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
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 char a[201];
     6 int f(int n)  //快速幂 ,求2011的n次方并求余10000; 
     7 {
     8     if(n==0)return 1;
     9     if(n==1)return 2011;
    10     int b=f(n/2)%10000;
    11     b=(b*b)%10000;
    12     if(n%2==1)b=(b*2011)%10000;
    13     return b;
    14 }
    15 int main()
    16 {
    17     int l,k,x=0;
    18     cin>>k;
    19     for(int i=1;i<=k;++i)
    20     {
    21         x=0;  
    22         memset(a,0,sizeof(a));//一定要赋初值0 
    23         scanf("%s",a);
    24         l=strlen(a);
    25         if(l==1)x=a[0]-'0';        //将字符串转为数字; 
    26         else if(l==2)x=10*(a[0]-'0')+(a[1]-'0');
    27         else if(l==3)x=100*(a[0]-'0')+10*(a[1]-'0')+(a[2]-'0');
    28         else for(int i=l-4;i<=l-1;++i)
    29         x=x*10+(a[i]-'0');
    30         cout<<f(x)<<endl;  
    31     }
    32     return 0;
    33 } 
  • 相关阅读:
    去除文本多余空行
    自定义裁剪图片
    遍历文件目录下所有图片并保存到统一路径
    根据节点解析xml
    坐标转换——GCJ-02
    获取进程列表
    判断进程状态
    VSDK modify HDMI resolution
    mcspi
    TI RTOS
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6613469.html
Copyright © 2011-2022 走看看