1170:计算2的N次方

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 15778     通过数: 8179

【题目描述】

任意给定一个正整数N(N<=100),计算2的n次方的值。

【输入】

输入一个正整数N。

【输出】

输出2的N次方的值。

【输入样例】

5

【输出样例】

32

【分析】

幂运算计算可以采用分段表示法,也称作高精度计算的压位法。 例如,假设用一个数组元素对应于大整数的4位,即将大整数表示为10000进制,也就是说逢10000进1。如,用int型数组a来存放整数6373384,那么只需两个数组元素即可,a[0]=3384,a[1]=637。俗称压位,压了4位。 本题计算a^n,存储到整型数组中,如果幂乘超过符号常量PASS:1000000000,压位10位,则除、余进位,并判断除余进位是否为最高位,是最高位则位置加1(即整型数组长度加1),最后逆序输出整型数组。

【参考代码】

#include <stdio.h>
#define PASS 1000000000      // 符号常量,超过该数,则取余并进位 
#define MAX 200
int main()
{
    int a=2,n;
    long long temp[MAX]={0};
    int pos=1,step=0,j;           // pos 表示分段表示法,表示的数的最高位,当数超过PASS,则 pos+1
    scanf("%d",&n);
    temp[0]=1;
    while(n--)
    {
        for(j=0;j<pos;j++)
            temp[j]*=a;
        for(j=0;j<pos;j++)
            if(temp[j]>PASS)
            {
                temp[j+1]+=temp[j]/PASS;     // 超过PASS,则数向前进位 
                temp[j]%=PASS;
                if(j==pos-1)
                  pos++;
            }
    }
    for(j=pos-1;j>=0;j--)
    {
        if(temp[j]==0 && !step)
            continue;
        if(step==0)
            printf("%lld",temp[j]);
        else
            printf("%09lld",temp[j]);
        step=1;
    }
    putchar('\n');
    return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1170

信息学奥数一本通(1170:计算2的N次方)相关推荐

  1. 信息学奥数一本通(1004:字符三角形)

    1004:字符三角形 时间限制: 1000 ms         内存限制: 66536 KB 提交数: 107002     通过数: 58798 [题目描述] 给定一个字符,用它构造一个底边长5个 ...

  2. 买书(信息学奥数一本通-T1293)

    [题目描述] 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元. 问小明有多少种买书方案? [输入] 第一行为n和m.一个整数 n,代表总共钱数.(0 ≤ n ≤ 1000) ...

  3. 货币系统(信息学奥数一本通-T12973)

    [题目描述] 给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案. [输入] 第一行为n和m. [输出] 一行,方案数. [输入样例] 3 10        //3种面值组成面值为10的方 ...

  4. 信息学奥数一本通 1212:LETTERS 搜索与回溯(耙耙)

    1212:LETTERS 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11866 通过数: 5252 [题目描述] 给出一个roe×col的大写字母矩阵,一开始的位置为左上角, ...

  5. 数字组合(信息学奥数一本通-T1291)

    [题目描述] 有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式.如: n=5,5个数分别为1,2,3,4,5,t=5: 那么可能的组合有5=1+4和5=2+3和5=5三种组合方式. [输入 ...

  6. 完全背包问题(信息学奥数一本通-T1268)

    [题目描述] 设有n种物品,每种物品有一个重量及一个价值.但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的 ...

  7. 庆功会(信息学奥数一本通-T1269)

    [题目描述] 为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员.期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力. [输入] 第一行二个数n(n ...

  8. 混合背包(信息学奥数一本通-T1270)

    [题目描述] 一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn.有的物品只可以取一次(01背包),有的物品可以取 ...

  9. 【信息学奥数】—— 第一部分 C++语言 知识总结

    [信息学奥数]-- 第一部分 C++语言 知识总结 C++语言 一.C++语言入门 二.顺序结构程序设计 运算符和表达式 常量和变量 标准数据类型 数据输入输出 三.控制结构程序设计 if语句 swi ...

最新文章

  1. 2021年4月19日 深圳头条后台开发实习面试(二面)(含总结)
  2. 使用String.format简化代码
  3. [翻译] Shimmer
  4. python 科学计算机_在这个免费的虚拟俱乐部中学习计算机科学和Python的基础知识
  5. Cookies和Session(二)
  6. 字节跳动正秘密研发手机 网友:字节锤子手机真来了?
  7. 【漏洞复现】局域网 ARP 中间人攻击 获取他人账号密码
  8. IDEA集成MAVEN 报错
  9. 如何在linux运行exe文件,在Deepin系统下直接运行exe文件的方法
  10. 威联通如何备份文件服务器上,如何在 QNAP NAS 上使用 Commvault 软件来管理及备份数据?...
  11. 如何复制出计算机缓存中的歌曲,怎么把哔哩哔哩里缓存的视频中的音频单独提取出来。...
  12. codelite 设置
  13. 树莓派与matlab联动并安装opencv
  14. 【济南校区】将来的你,一定会感谢现在拼命的自己
  15. 基于企业战略的业务流程重组与外包(2) (转载)
  16. python列表拆包_python拆包
  17. 【笔记】python中常见的函数(一)
  18. vmm_xactor
  19. HYBBS论坛表白墙网站PHP程序源码
  20. Altiverb混响试听:让你的声音置身于传奇环境中

热门文章

  1. [转]这才是真正的3D显示!Leap Motion推出次毫米级3D手动控制技术,让人手和影像融为一体...
  2. 数字化转型最致命的5个误区
  3. 7805输入电流有要求吗_【电磁炉技术】电磁炉常用元器件的使用要求和维修事项...
  4. oracle中文字段名怎么查询_sql注入联合查询总结
  5. 小白也能看懂的缓存雪崩、穿透、击穿
  6. 发年终奖了,送台MacBook Air!
  7. 你好,面试官 | 你觉得MySQL自增主键连续吗?
  8. 技术转管理?这些“坑”你要绕道走
  9. Jeecg-boot 2.4.6+ 多租户改造方案(涉及菜单部门角色等基础模块)
  10. UI标签库专题十:JEECG智能开发平台 Form(form标签)