计算2的N次方【高精度算法】
这道题某些人一看,诶,这不挺简单的吗,但是请注意他的样例
已经超过了十万,TM这还是int能够达到的极限吗?
所以我么不得不用处最后的神器——递归,啊呸,高精度
其实这道题“特别”简单,因为其实只需要输入整数n,不需要输入char字符数组(这道题有BUG),如果真的要的话,那还是老套路,整数N我怕他们会挑刺,这里就给大家科普一下
unsigned long long int 类型,占得字节数只有8(64位),数值范围是(0~18446744073709551615),也就是0~2的64次方-1。
然后后面的思路就很简单了,我就不详细讲了,那些白嫖怪拿走吧
额。。。。文章质量不佳,我也是挺崩溃的,那我还是详细讲一下吧。
第一步输入,也可以用cin,但是scanf的准度更高,而且还需要用ulld来输入,不然的话你输入的长度太高,当场就崩掉
第二步计算,通过再也熟悉不过的两重循环嵌套,但是不需要数组的循环计算,直接等于乘以二,然后简单的进位
第三步导0,这里的导0是专门用于高精度乘法的导0,大整数加法不通用
第四步输出
我真的不能再勤奋了,麻烦给个赞谢谢!
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int a[10000000],len=1;
unsigned long long int n;
int main()
{scanf("%ulld",&n);a[1]=1;for (int i=1;i<=n;i++){for (int j=1;j<=len;j++){a[j]*=2;}for (int k=1;k<=len;k++){if (a[k]>9){a[k+1]+=a[k]/10;a[k]%=10;if (k==len){len++;}}}}while (a[len]==0 && len>1) len--;for (int i=len;i>=1;i--){printf("%d",a[i]);}
}
计算2的N次方【高精度算法】相关推荐
- C++计算a的b次方的算法(附完整源码)
C++计算a的b次方的算法 C++计算a的b次方的算法完整源码(定义,实现,main函数测试) C++计算a的b次方的算法完整源码(定义,实现,main函数测试) #include <iostr ...
- 计算x的n次方 高效算法
注释部分也是可以的 但是远不及后面来的短小精悍. public class Solution{public double MyPow(double x, int n){// double ans=0 ...
- 2的23次方减1的python_2的n次方(python计算2的n次方的算法)
2的n次方,就是n个2相乘.2^N 意思就是2*2*2*2*-*2(n个2相乘)2的2次方,也叫做2的平方.也就是2个2相乘.记作22.2的3次方,也叫做2的立方.也就是3个2相乘.记作23. 2^n ...
- 计算2的n次方的程序用高精度计算c语言,【高精度】计算2的N次方
题目相关 [题目描述] 任意给定一个正整数N(N≤100),计算2的n次方的值. [输入] 输入一个正整数N. [输出] 输出2的N次方的值. [输入样例] 5 [输出样例] 32 分析 本题考察的是 ...
- 信息学奥赛一本通 1170:计算2的N次方 | OpenJudge NOI 1.6 12:计算2的N次方
[题目链接] ybt 1170:计算2的N次方 OpenJudge NOI 1.6 12:计算2的N次方 [题目考点] 1. 高精度 考察:高精乘低精 高精度计算讲解 2. 快速幂 [解题思路] 先估 ...
- 《算法技术手册》一2.4.6 二次方的算法性能
2.4.6 二次方的算法性能 现在考虑一个类似的问题:两个n位的整数相乘.例2-4展示了使用小学课堂上学过的算法实现的乘法运算,其中n位数字的表示方法与之前的加法一样. 例2-4:mult乘法的Jav ...
- 高精度算法(加减乘除取模(均可以处理负数))
高精度算法 前言 大数加法 不可以处理负数的模板 可以处理负数 大数减法 两个数都是整数,且相减结果大于0 两个数都是正整数,相减结果可以是负数 两个数均可以是负数 高精度乘法 两个数均可以是负数 大 ...
- Python计算 1的9999999次方,不到1s就得出答案!是如何处理的?
问题引发 网友计算1的9999999次方,不到1s就得出答案.那python是如何处理的? >>> a=1 >>> i=a**9999999 >>> ...
- 汇编语言:使用汇编程序计算2的8次方
预备知识 在博客 汇编指令:使用汇编指令计算2的8次方 中使用汇编指令进行计算的,太不可科学了,是用来熟悉汇编 练习指令滴.这次我们用真正的汇编语言进行编程来计算2的8次方. 在本程序中,没有直接的数 ...
- C/C++:计算N的N次方的个位数(巧用快速幂与模运算性质)
题目描述(源自杭电OJ): 相关数学知识一:取模运算的性质 a乘b的结果对p取模等于a对p取模的结果乘b对p取模的结果再整体取模于p,详见下图 证明过程如下: 相关数学知识二:快速幂运算 以求a的b ...
最新文章
- 统计学习方法|逻辑斯蒂原理剖析及实现
- 图像中值处理MATLAB实现
- c/c++反混淆方法
- 韦博英语危机爆发,教培行业如何应对中年危机?
- 记录一下ui设计中的网站配色
- if、for、while、do while、switch (区别于if、while)解析
- mybatis实现动态sql语句
- java myeclipse The type java.lang.CharSequence cannot be resolved. It is indirectly referen
- 在eclipse中创建第一个java应用程序,并在控制台输出“hello world”。
- Visual Studio Online 的 FAQ:iPad 支持、自托管环境、Azure 账号等
- java.lang.IllegalArgumentException: MALFORMED jar解析中文报错问题
- 【转载】windows跳板机配置远程桌面连接
- 苹果已招聘两名梅赛德斯前工程师 其中一人曾在保时捷工作近6年
- 编程序常用英语单词是什么
- Onvif之获取媒体信息GetProfiles
- play framework 在 IDEA 11中debug
- Easy3D 样条曲线拟合
- 京东工业冲刺港交所:年营收141亿 GGV与红杉中国是股东
- 尚硅谷nginx笔记
- 2014年放假安排时间表