算法提高 不大的数
2017-04-25 20:00
148 查看
算法提高 不大的数
时间限制:300ms 内存限制:8.0MB
提交此题
目前已AC者
刘啸宇
章放
问题描述
在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校找到了同学中的“神霸”——你来帮忙,并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要,也并不要求你给出数的全部结果,而只是要求结果的前10位(注意不是后10位),并考虑到2的幂次的特殊性和典型性,所以要你计算的数均为2的幂次。
输入格式
一个自然数n。
输出格式
2的n次幂的前10位。
样例1 输入
60
样例1 输出
1152921504
样例2 输入
60000
样例2 输出
6305794870
数据规模和约定
0<=n<=10000000
注释
=。=
时间限制:300ms 内存限制:8.0MB
提交此题
目前已AC者
刘啸宇
章放
问题描述
在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校找到了同学中的“神霸”——你来帮忙,并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要,也并不要求你给出数的全部结果,而只是要求结果的前10位(注意不是后10位),并考虑到2的幂次的特殊性和典型性,所以要你计算的数均为2的幂次。
输入格式
一个自然数n。
输出格式
2的n次幂的前10位。
样例1 输入
60
样例1 输出
1152921504
样例2 输入
60000
样例2 输出
6305794870
数据规模和约定
0<=n<=10000000
注释
=。=
#include<iostream> #include<cstdio> using namespace std; int main() { int n; cin>>n; double t=1.0; for (int i=1;i<=n;i++) { t*=2; if (i>=34&&i%10==0) //当乘了34次之后会大于十位,之后的每乘10次, //就是乘1024.所以除1000 { t/=1000; } if (i%971==0) { t/=10; } } long long int temp=t; int sum=0; while(temp)//计算总共多少位 { temp/=10; sum++; } while(sum>10)//留下前十位 { t/=10; sum--; } temp=t; printf("%lld",temp); return 0; }
相关文章推荐
- 算法提高 不大的数
- 蓝桥杯 ADV-206 算法提高 不大的数
- 算法提高 12-2扑克排序
- 提高算法性能——位运算
- 算法提高 队列操作
- 【蓝桥杯】 算法提高 身份证号码升级
- 蓝桥杯 ADV-194 算法提高 盾神与积木游戏 java版
- 算法提高 日期计算
- 蓝桥杯 算法提高 三个整数的排序
- 算法提高 矩阵乘法
- PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍
- 蓝桥杯 算法提高 8-1因式分解
- 算法提高 求最大值
- 算法提高 c++_ch02_04
- 算法提高 12-2扑克排序
- 2016蓝桥杯算法提高——身份证号码升级
- 算法提高 约数个数
- 算法提高 第二大整数
- 算法-蓝桥杯-算法提高 01背包(JAVA)
- 蓝桥杯 ADV-188 算法提高 排列数(java) 深度优先搜索 DFS