算法提高 不大的数
2017-12-13 11:55
162 查看
算法提高 不大的数
时间限制:300ms 内存限制:8.0MB
目前已AC者
刘啸宇
章放
问题描述
在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校找到了同学中的“神霸”——你来帮忙,并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要,也并不要求你给出数的全部结果,而只是要求结果的前10位(注意不是后10位),并考虑到2的幂次的特殊性和典型性,所以要你计算的数均为2的幂次。
输入格式
一个自然数n。
输出格式
2的n次幂的前10位。
样例1 输入
60
样例1 输出
1152921504
样例2 输入
60000
样例2 输出
6305794870
数据规模和约定
0<=n<=10000000
具体分析参见博客:https://www.liuchuo.net/archives/1322
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
double t=1.0;
int i;
for(i=1;i<=n;i++)
{
t=t*2;
if(i>=34&&i%10==0)
//当乘以2的次数超过或者等于34次的时候,就会超过10位数字
t=t/1000;/相当于乘2^10,即1024
if(i%971==0)
//每乘以971个2后除以10
t=t/10;/让要求的数除以10保证不会溢出
}
long long temp=t;
int sum=0;
while(temp)
{
temp=temp/10;
sum++;
}
while(sum>10)
{
t=t/10;
sum--;
}
long long d=t;
printf("%I64d",d);
}
时间限制:300ms 内存限制:8.0MB
目前已AC者
刘啸宇
章放
问题描述
在当今的大数据时代,超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会,然而由于时间有限,所以短时间内难以找出大数计算的通用算法,于是学校找到了同学中的“神霸”——你来帮忙,并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要,也并不要求你给出数的全部结果,而只是要求结果的前10位(注意不是后10位),并考虑到2的幂次的特殊性和典型性,所以要你计算的数均为2的幂次。
输入格式
一个自然数n。
输出格式
2的n次幂的前10位。
样例1 输入
60
样例1 输出
1152921504
样例2 输入
60000
样例2 输出
6305794870
数据规模和约定
0<=n<=10000000
具体分析参见博客:https://www.liuchuo.net/archives/1322
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
double t=1.0;
int i;
for(i=1;i<=n;i++)
{
t=t*2;
if(i>=34&&i%10==0)
//当乘以2的次数超过或者等于34次的时候,就会超过10位数字
t=t/1000;/相当于乘2^10,即1024
if(i%971==0)
//每乘以971个2后除以10
t=t/10;/让要求的数除以10保证不会溢出
}
long long temp=t;
int sum=0;
while(temp)
{
temp=temp/10;
sum++;
}
while(sum>10)
{
t=t/10;
sum--;
}
long long d=t;
printf("%I64d",d);
}
相关文章推荐
- 算法提高 不大的数
- 蓝桥杯 ADV-206 算法提高 不大的数
- 蓝桥杯 ADV-96 算法提高 复数求和
- 利用AdaBoost元算法提高分类性能
- 算法提高 ADV-211 2-2整数求和
- 算法笔记_158:算法提高 逆序排列(Java)
- 算法提高 特殊的质数肋骨
- HDU 2768 Cat vs. Dog 最大独立集+匈牙利算法(提高题)
- 蓝桥杯 算法提高 棋盘多项式
- 算法提高 日期计算 蓝桥杯java详解
- 算法提高 最大乘积
- 蓝桥杯 算法提高 三位数进制和
- 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
- 算法提高 拿糖果
- 算法笔记_099:蓝桥杯练习 算法提高 排列数(Java)
- 算法提高 9-1九宫格
- 算法提高 数字黑洞
- 算法提高 统计单词数
- 机器学习实战-利用AdaBoost元算法提高分类性能
- 1020: 算法提高 聪明的美食家