2的N次方计算中结果可能超过long的范围

#include

#include

using namespace std;

void mult(int m[],int a);

void multipy(int n[],int m[]);

int mini(int a);

int main(void){

const int max = 200;

int m[max] = {0};

m[max-1] = 2;

int n[max] = {0};

int a;

cin >> a;

if(a%2==1)

n[max-1] = 2;

else

n[max-1] = 1;

while(a>1){

int s = mini(a);

for(int i = 0;i

m[i] = 0;

m[max-1] = 2;

mult(m,s);

multipy(n,m);

a -= s;

}

int z = 0;

while(n[z]==0)

z++;

for(int i = z;i

cout << n[i];

}

void mult(int *m,int a){

const int max = 200;

if(a==2){

int y = 0;

int e[max] = {0};

for(int i = max-1;i>=0;i--){

for(int j = max-1;j>=0;j--)

e[j-y] += m[i]*m[j];

y++;

}

for(int i = max-1;i>0;i--){

if(e[i]>9){

e[i-1] += e[i]/10;

e[i] %= 10;

}

}

for(int i = max-1;i>=0;i--)

m[i] = e[i];

}

else{

int y = 0;

int e[max] = {0};

for(int i = max-1;i>=0;i--){

for(int j = max-1;j>=0;j--)

e[j-y] += m[i]*m[j];

y++;

}

for(int i = max-1;i>0;i--){

if(e[i]>9){

e[i-1] += e[i]/10;

e[i] %= 10;

}

}

for(int i = max-1;i>=0;i--)

m[i] = e[i];

mult(m,a/2);

}

}

void multipy(int *n,int *m){

const int max = 200;

int y = 0;

int e[max] = {0};

for(int i = max-1;i>=0;i--){

for(int j = max-1;j>=0;j--)

e[j-y] += n[i]*m[j];

y++;

}

for(int i = max-1;i>0;i--){

if(e[i]>9){

e[i-1] += e[i]/10;

e[i] %= 10;

}

}

for(int i = max-1;i>=0;i--)

n[i] = e[i];

}

int mini(int a){

int k = 1;

while(k<=a)

k *= 2;

return k/2;

}

c++语言计算2的n次方,【C++】高精度方法求2的N次方相关推荐

  1. c语言三种方法求n的k次方

    // 方法一:递归 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Pow ...

  2. c语言1 2 3 10000,在网上看到一个求2的10000次方的方法,有个地方看不懂,求大佬...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "stdio.h " int main(void) { static unsigned int temp[1024] ...

  3. 51c语言计算延时时间继电器接线图,时间继电器的接线方法及接线图

    接线插头:8针圆插头 针脚定义: 接线方式1(国内常规) 接线方式2(omron) 针号 针定义 针号 针定义 1b公共端 1 外部开关公共端 2零线n(ac85-265v) 3 继电器b常开触点 3 ...

  4. c语言计算日出日落时间_利用日期、经纬度求日出日落时间 C语言程序代码

    展开全部 #define PI 3.1415926 #include #include using namespace std; int days_of_month_1[]={31,28,31,30, ...

  5. 计算机语言周长,C语言计算矩形的周长和面积

    C语言计算矩形的周长和面积 发布时间:2020-07-08 11:07:25 来源:亿速云 阅读:108 作者:Leah 本篇文章给大家分享的是有关C语言计算矩形的周长和面积,小编觉得挺实用的,因此分 ...

  6. C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数

    代码如下: //利用 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数 #include<stdio.h&g ...

  7. a的n次方的最后三位数c语言,求13的n次方(12n≤130000000000)的最后三位数,用c++编程...

    #include intmain() { longlonginti,x,y,last;/*变量last保存求X的Y次方过程中的部分乘积的后三位*/ //输入 while(scanf("%ll ...

  8. (c语言)求x的y次方

    (c语言)求x的y次方,输入x和y的值,y为整数 #include<stdio.h> #include<stdlib.h> #include<math.h>//注意 ...

  9. 复化梯形c语言计算定积分,第六章 函数和宏定义实验(2)

    1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 4.编写计算学生年龄的递归函数 5. ...

最新文章

  1. NeurIPS 2020 :新一代算法“鉴黄师”诞生,中科院计算所研究生一作
  2. 将会改变未来IT世界的十种编程语言
  3. 粒子群优化算法Matlab实现(待逐步解释)
  4. 常用 SQL Server 规范集锦
  5. HashMap 和 HashTable 到底哪不同 ?
  6. 5shift shell
  7. 打印字符(信息学奥赛一本通-T1021)
  8. 和与余数的和同余理解_余数与同余解析
  9. windows下安装Keras(CPU版)
  10. C#复制文件夹下的所有内容到另一个文件夹
  11. rom大小 stm32f205_最小的基于STM32F205VE的系统板
  12. EverNote 极致的免费笔记资料管理软件 (数据网络同步、支持PC、Mac与手机多平台) 转自:http://www.iplaysoft.com/evernote.html
  13. 破解物联网落地困境-阿里云硬件接入最佳实践
  14. 高并发场景以及应对技巧
  15. RxSwift 学习:基础使用篇 - 序列 订阅 销毁
  16. JavaScript的对象、属性与方法
  17. c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt
  18. 为什么从此电脑访问不了ftp_巧用FTP来管理手机文件 从此摆脱USB
  19. FlashFXP.v3.5.4.1230-RES-patch by SunBeam
  20. eclips启动code=13的处理经验

热门文章

  1. 【java】ClassLoader.getResources加载资源
  2. 如何使用闲置电脑制作服务器并且外网可访问
  3. 程序员被违法辞退?这笔钱你拿到了吗?
  4. 浅谈直播教育平台开发成本
  5. CTreeCtrl::InsertItem给树形视图控件添加一个项目
  6. 无法显示Outlook 2003通讯簿的解决办法(无法显示地址列表)
  7. 目标检测算法实现(八)——YOLOV5学习笔记
  8. Vue - 图片浏览组件v-viewer
  9. DALL·E-2是如何工作的以及部署自己的DALL·E模型
  10. [Vijos1009] 清帝之惑之康熙