信息学奥数一本通(1170:计算2的N次方)
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次方)相关推荐
- 信息学奥数一本通(1004:字符三角形)
1004:字符三角形 时间限制: 1000 ms 内存限制: 66536 KB 提交数: 107002 通过数: 58798 [题目描述] 给定一个字符,用它构造一个底边长5个 ...
- 买书(信息学奥数一本通-T1293)
[题目描述] 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元. 问小明有多少种买书方案? [输入] 第一行为n和m.一个整数 n,代表总共钱数.(0 ≤ n ≤ 1000) ...
- 货币系统(信息学奥数一本通-T12973)
[题目描述] 给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案. [输入] 第一行为n和m. [输出] 一行,方案数. [输入样例] 3 10 //3种面值组成面值为10的方 ...
- 信息学奥数一本通 1212:LETTERS 搜索与回溯(耙耙)
1212:LETTERS 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11866 通过数: 5252 [题目描述] 给出一个roe×col的大写字母矩阵,一开始的位置为左上角, ...
- 数字组合(信息学奥数一本通-T1291)
[题目描述] 有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式.如: n=5,5个数分别为1,2,3,4,5,t=5: 那么可能的组合有5=1+4和5=2+3和5=5三种组合方式. [输入 ...
- 完全背包问题(信息学奥数一本通-T1268)
[题目描述] 设有n种物品,每种物品有一个重量及一个价值.但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的 ...
- 庆功会(信息学奥数一本通-T1269)
[题目描述] 为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员.期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力. [输入] 第一行二个数n(n ...
- 混合背包(信息学奥数一本通-T1270)
[题目描述] 一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn.有的物品只可以取一次(01背包),有的物品可以取 ...
- 【信息学奥数】—— 第一部分 C++语言 知识总结
[信息学奥数]-- 第一部分 C++语言 知识总结 C++语言 一.C++语言入门 二.顺序结构程序设计 运算符和表达式 常量和变量 标准数据类型 数据输入输出 三.控制结构程序设计 if语句 swi ...
最新文章
- 2021年4月19日 深圳头条后台开发实习面试(二面)(含总结)
- 使用String.format简化代码
- [翻译] Shimmer
- python 科学计算机_在这个免费的虚拟俱乐部中学习计算机科学和Python的基础知识
- Cookies和Session(二)
- 字节跳动正秘密研发手机 网友:字节锤子手机真来了?
- 【漏洞复现】局域网 ARP 中间人攻击 获取他人账号密码
- IDEA集成MAVEN 报错
- 如何在linux运行exe文件,在Deepin系统下直接运行exe文件的方法
- 威联通如何备份文件服务器上,如何在 QNAP NAS 上使用 Commvault 软件来管理及备份数据?...
- 如何复制出计算机缓存中的歌曲,怎么把哔哩哔哩里缓存的视频中的音频单独提取出来。...
- codelite 设置
- 树莓派与matlab联动并安装opencv
- 【济南校区】将来的你,一定会感谢现在拼命的自己
- 基于企业战略的业务流程重组与外包(2) (转载)
- python列表拆包_python拆包
- 【笔记】python中常见的函数(一)
- vmm_xactor
- HYBBS论坛表白墙网站PHP程序源码
- Altiverb混响试听:让你的声音置身于传奇环境中
热门文章
- [转]这才是真正的3D显示!Leap Motion推出次毫米级3D手动控制技术,让人手和影像融为一体...
- 数字化转型最致命的5个误区
- 7805输入电流有要求吗_【电磁炉技术】电磁炉常用元器件的使用要求和维修事项...
- oracle中文字段名怎么查询_sql注入联合查询总结
- 小白也能看懂的缓存雪崩、穿透、击穿
- 发年终奖了,送台MacBook Air!
- 你好,面试官 | 你觉得MySQL自增主键连续吗?
- 技术转管理?这些“坑”你要绕道走
- Jeecg-boot 2.4.6+ 多租户改造方案(涉及菜单部门角色等基础模块)
- UI标签库专题十:JEECG智能开发平台 Form(form标签)