题目相关

【题目描述】

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

【输入】

输入一个正整数N。

【输出】

输出2的N次方的值。

【输入样例】

5

【输出样例】

32

分析

本题考察的是大数乘法。需要注意观察数据范围,int的范围极限接近\(2^{31}\) ,本题中N的范围使得最后的数值会超过int范围极限,甚至是long long范围极限。那么此时可以采用高精度乘法的思想来进行处理。

并且,这一题是求2的次方值,只需将值与2相乘即可。实际上是一个高精数字与整数数字相乘。模拟竖式计算的过程即可。

for(int i=1;i<=n;i++){
ans=ans*2;
}

代码实现

#include <iostream>
#include <cstring>
using namespace std; void timesTwo(char ans[]){
int len=strlen(ans);
int tmp[1005]={0};
int sum[1005]={0};//存放整数结果
for(int i=0;i<len;i++){//倒序转换字符串
tmp[i]=ans[len-1-i]-'0';
}
for(int i=0;i<len;i++){//乘法计算
sum[i]+=tmp[i]*2;
sum[i+1]+=(sum[i]/10);
sum[i]%=10;
} //倒序处理答案
bool flag=false;
for(int i=len,j=0;i>=0;i--){
if(sum[i]!=0||i==0){
flag=true;
}
if(flag){
ans[j++]=sum[i]+'0';
}
}
} int main(){
char ans[1005]={'1'};
int n;
cin>>n;
for(int i=1;i<=n;i++){
timesTwo(ans);
}
cout<<ans;
return 0;
}

视频链接

链接

源码

源码上传至Gitee仓库中,欢迎star!

Fork me on Gitee

【高精度】计算2的N次方的更多相关文章

  1. OpenJudge 2809 计算2的N次方

    1.链接地址: http://bailian.openjudge.cn/practice/2809/ 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 任意给定一个正整数N(N ...

  2. 通过例子进阶学习C++(五)计算2的1次方至2的64次方之和

    本文是通过例子学习C++的第五篇,通过这个例子可以快速入门c++相关的语法. 1.上篇回顾 在上一篇中,我们通过字符数组计算264次方: 通过例子进阶学习C++(四)计算2的64次方 带着这个问题:为 ...

  3. AC日记——计算2的N次方 openjudge 1.6 12

    12:计算2的N次方 总时间限制:  1000ms 内存限制:  65536kB 描述 任意给定一个正整数N(N<=100),计算2的n次方的值. 输入 输入一个正整数N. 输出 输出2的N次方 ...

  4. 计算2的N次方

    总时间限制:  1000ms 内存限制:  65536kB 描述 任意给定一个正整数N(N<=100),计算2的n次方的值. 输入 输入一个正整数N. 输出 输出2的N次方的值. 样例输入 5 ...

  5. 计算2的n次方的三种方法(C语言实现)

    C代码如下: #include <stdio.h> int func1(int n) { <<n; } int func2(int n) { ) { ; } )*; } int ...

  6. 12:计算2的N次方

    12:计算2的N次方 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 任意给定一个正整数N(N<=100),计算2的n次方的值. 输入 输入一个正整数N ...

  7. 39页第7题 计算2的i次方之和

    /*计算2的i次方之和*/ #include<stdio.h> #include<math.h>/*调用math.h文件中的函数*/ int main(void) { int ...

  8. 通过例子进阶学习C++(四)计算2的64次方,不服写写看

    ​ 本文是通过例子学习C++的第四篇,通过这个例子可以快速入门c++相关的语法. 1.乍一看题目非常简单,简单思考一下,可以通过for循环实现: #include <iostream> u ...

  9. 计算2的N次方&&计算e

    2的N次方 注意:这里在处理的时候并没有用循环来处理,而是用移位的做法.    n<<4  就是 n*2^4    ,所以在本例中只需要写 1<<time  (time是要求的 ...

随机推荐

  1. CTF写脚本

    今天总结一下CTF如何写脚本快速得分....(比较菜,能力有限,大佬勿喷) 所谓的写脚本得分,就是利用了 python爬虫的思想,如果之前没有听说过的话,可以去爬虫的相关语法.如果是看网上的视频的话, ...

  2. python-列表list和元组tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  3. iOS崩溃日志 如何看

    日志主要分为六个部分:进程信息.基本信息.异常信息.线程回溯.线程状态和二进制映像. 我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多 ...

  4. csv 如何将txt文件转换成csv文件

    import csvdef convert_txt_to_csv(out_file_path, input_file_path, txt_sep): #定义输出路径,输入文件路径,txt的分隔符 wi ...

  5. python web的一些常见技术面试笔试题

    1. 三次握手四次挥手   tcp建立连接的过程是三次挥手,断开连接是4次挥手. 三次握手:建立连接时 a. 客户端发送syn=1 seq=k给服务器 b. 服务器接收到之后知道有客户端想建立连接, ...

  6. 【CH 弱省互测 Round #1 】OVOO(可持久化可并堆)

    Description 给定一颗 \(n\) 个点的树,带边权. 你可以选出一个包含 \(1\) 顶点的连通块,连通块的权值为连接块内这些点的边权和. 求一种选法,使得这个选法的权值是所有选法中第 \ ...

  7. 部署在GitHub的个人博客如何绑定个人域名

    前提是已经搭建好了自己的个人博客 如果想要搭建自己的个人博客可以来我的个人博客学习呀 地址 购买域名 首先想要绑定域名,总归需要去购买一个属于自己的域名吧,我是在腾讯云上面购买的域名(不是广告) 在腾 ...

  8. Unity射击实例讲解—主角创建

    前言: 经过三分钟的思考决定换个标题,这两天其实游戏制作进度推了大半了,加入了许多自我创作的素材,不过想一想用来讲解的实例不该这么花哨,决定还是参照我的一些教材做一些简单的示例不然要说的东西太多,本人 ...

  9. 最全总结 | 聊聊 Python 办公自动化之 PDF(上)

    1. 前言 自动化办公,非 Python 莫属! 从本篇文章开始,我们继续聊聊自动化办公中另外一个常用系列:PPT 2. 准备一下 Python 操作 PPT 最强大的依赖库是:python-pptx ...

  10. Centos7__Scrapy + Scrapy_redis 用Docker 实现分布式爬虫

    原理:其实就是用到redis的优点及特性,好处自己查--- 1,scrapy 分布式爬虫配置: settings.py BOT_NAME = 'first' SPIDER_MODULES = ['fi ...