c++语言计算2的n次方,【C++】高精度方法求2的N次方
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次方相关推荐
- c语言三种方法求n的k次方
// 方法一:递归 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Pow ...
- c语言1 2 3 10000,在网上看到一个求2的10000次方的方法,有个地方看不懂,求大佬...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "stdio.h " int main(void) { static unsigned int temp[1024] ...
- 51c语言计算延时时间继电器接线图,时间继电器的接线方法及接线图
接线插头:8针圆插头 针脚定义: 接线方式1(国内常规) 接线方式2(omron) 针号 针定义 针号 针定义 1b公共端 1 外部开关公共端 2零线n(ac85-265v) 3 继电器b常开触点 3 ...
- c语言计算日出日落时间_利用日期、经纬度求日出日落时间 C语言程序代码
展开全部 #define PI 3.1415926 #include #include using namespace std; int days_of_month_1[]={31,28,31,30, ...
- 计算机语言周长,C语言计算矩形的周长和面积
C语言计算矩形的周长和面积 发布时间:2020-07-08 11:07:25 来源:亿速云 阅读:108 作者:Leah 本篇文章给大家分享的是有关C语言计算矩形的周长和面积,小编觉得挺实用的,因此分 ...
- 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 ...
- a的n次方的最后三位数c语言,求13的n次方(12n≤130000000000)的最后三位数,用c++编程...
#include intmain() { longlonginti,x,y,last;/*变量last保存求X的Y次方过程中的部分乘积的后三位*/ //输入 while(scanf("%ll ...
- (c语言)求x的y次方
(c语言)求x的y次方,输入x和y的值,y为整数 #include<stdio.h> #include<stdlib.h> #include<math.h>//注意 ...
- 复化梯形c语言计算定积分,第六章 函数和宏定义实验(2)
1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 4.编写计算学生年龄的递归函数 5. ...
最新文章
- NeurIPS 2020 :新一代算法“鉴黄师”诞生,中科院计算所研究生一作
- 将会改变未来IT世界的十种编程语言
- 粒子群优化算法Matlab实现(待逐步解释)
- 常用 SQL Server 规范集锦
- HashMap 和 HashTable 到底哪不同 ?
- 5shift shell
- 打印字符(信息学奥赛一本通-T1021)
- 和与余数的和同余理解_余数与同余解析
- windows下安装Keras(CPU版)
- C#复制文件夹下的所有内容到另一个文件夹
- rom大小 stm32f205_最小的基于STM32F205VE的系统板
- EverNote 极致的免费笔记资料管理软件 (数据网络同步、支持PC、Mac与手机多平台) 转自:http://www.iplaysoft.com/evernote.html
- 破解物联网落地困境-阿里云硬件接入最佳实践
- 高并发场景以及应对技巧
- RxSwift 学习:基础使用篇 - 序列 订阅 销毁
- JavaScript的对象、属性与方法
- c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt
- 为什么从此电脑访问不了ftp_巧用FTP来管理手机文件 从此摆脱USB
- FlashFXP.v3.5.4.1230-RES-patch by SunBeam
- eclips启动code=13的处理经验
热门文章
- 【java】ClassLoader.getResources加载资源
- 如何使用闲置电脑制作服务器并且外网可访问
- 程序员被违法辞退?这笔钱你拿到了吗?
- 浅谈直播教育平台开发成本
- CTreeCtrl::InsertItem给树形视图控件添加一个项目
- 无法显示Outlook 2003通讯簿的解决办法(无法显示地址列表)
- 目标检测算法实现(八)——YOLOV5学习笔记
- Vue - 图片浏览组件v-viewer
- DALL·E-2是如何工作的以及部署自己的DALL·E模型
- [Vijos1009] 清帝之惑之康熙