Exponentiation POJ-1001
http://poj.org/problem?id=1001
//10000000 100000
#include<iostream>
#include<cstring>
using namespace std;
],tts[]; /*用于处理输入,删去点,签到0,点后0,统计小数点后数的个数保存至origu */
],ans[],t_ans[]; // t_ans存乘法运算的中间过程
int b,u,origu,BITS,origBITS;
void my_pow(int x){
)
return ;
my_pow(x/);
//接下来ans*ans
memset(t_ans,,sizeof(t_ans));
;i>=;i--){ //模拟乘法
-i; /*tpos即 这次乘的结果存在t_ans哪一位 ,注意ans是高位在前, t_ans是高位在后的 */
;j>=;j--){
t_ans[tpos]+=ans[j]*ans[i];
){ /*进位, 这个进位应该进一位就可以了,没有必要再向前推了,因为某一位算出来的最大也到不了100(?) */
t_ans[tpos+]+=t_ans[tpos]/;
t_ans[tpos]%=;
}
tpos++;
}
}
; // 统计 2500-t_ans的位数
-;i>=;i--)
)
_BITS++;
else
break;
BITS=-_BITS; //更新BITS
,j=;i>=;i--) //高位在前存到ans里去
ans[j++]=t_ans[i];
u*=; //因为是自己×自己 所以小数点后数字个数增加一倍
){ //如果^b的b是奇数,还得再×一下初始的数即orig
//ans*orig
memset(t_ans,,sizeof(t_ans));
;i>=;i--){
-i;
;j>=;j--){
t_ans[tpos]+=ans[j]*orig[i];
){
t_ans[tpos+]+=t_ans[tpos]/;
t_ans[tpos]%=;
}
tpos++;
}
}
_BITS=;
-;i>=;i--)
)
_BITS++;
else
break;
BITS=-_BITS;
,j=;i>=;i--)
ans[j++]=t_ans[i];
u=u+origu;
}
}
void _print(){
if(u<BITS){
;
;i>=BITS-u;i--){
)
_del++;
else
break;
}
BITS-=_del;
u-=_del;
;i<BITS-u;i++)
printf("%d",ans[i]);
if(u){
printf(".");
for(int i=BITS-u;i<BITS;i++)
printf("%d",ans[i]);
}
printf("\n");
}
else{
;
;i>=;i--){
)
_del++;
else
break;
}
BITS-=_del;
u-=_del;
printf(".");
;i<u-BITS;i++)
printf(");
;i<BITS;i++)
printf("%d",ans[i]);
printf("\n");
}
}
int main(){
){
u=;
; //删点后0
;i>=;i--)
')
ts[i]='\0';
else
fg=;
;i>=;i--) //删点,统计点后数个数u origu
if(ts[i]!='.')
u++;
else
break;
origu=u;
;ts[i]!='\0';i++) // 删点,点后前移
ts[i]=ts[i+];
memset(tts,,sizeof(tts)); //删前导0
;
fg=;
;ts[i]!='\0';i++)
'&&fg)
pos++;
else
fg=;
;ts[i]!='\0';i++)
tts[j++]=ts[i];
BITS=origBITS=;
memset(ans,-,sizeof(ans));
memset(orig,-,sizeof(orig));
;tts[i]!='\0';i++){ //转到int数组
ans[i]=orig[i]=(');
origBITS++;BITS++;
}
my_pow(b); //快速幂
_print(); //输出
}
;
}
但是杭电这道同样的过不了,据说杭电会有00000.这样的测试数据?但是0能记成这种记法吗?还有人家明明说了R>0.0 , n>0为什么还非得找R=0N=0的特例啊,不管了,反正俺poj过了
Exponentiation POJ-1001的更多相关文章
- POJ 1001 Exponentiation(大数运算)
POJ 1001 Exponentiation 时限:500 ms 内存限制:10000 K 提交材料共计: 179923 接受: 43369 描述:求得数R( 0.0 < R < ...
- [POJ 1001] Exponentiation C++解题报告 JAVA解题报告
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 126980 Accepted: 30 ...
- Poj 1001 / OpenJudge 2951 Exponentiation
1.链接地址: http://poj.org/problem?id=1001 http://bailian.openjudge.cn/practice/2951 2.题目: Exponentiatio ...
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- [POJ] #1001# Exponentiation : 大数乘法
一. 题目 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 156373 Accepted: ...
- poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 138526 Accepted: 33859 ...
- POJ 1001 Exponentiation(JAVA,BigDecimal->String)
题目 计算实数a的n次方,具体输出格式看案例 import java.util.*; import java.math.*; public class Main { public static voi ...
- POJ 1001 Exponentiation
题意:求c的n次幂……要求保留所有小数…… 解法:一开始只知道有BigInteger……java大数+模拟.第一次写java大数……各种报错各种exception……ORZ 没有前导0和小数后面的补位 ...
- POJ 1001 Exponentiation 模拟小数幂
模拟小数幂 小数点位 pos 非零末位 e 长度 len 只有三种情况 pos > len pos < e e < pos < len #include <iostrea ...
- 【POJ 1001】Exponentiation (高精度乘法+快速幂)
BUPT2017 wintertraining(15) #6A 题意 求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25) 题解 将R用字符串读 ...
随机推荐
- qt4代码到qt5代码出错
1.error C2039: “toAscii”: 不是“QString”的成员 QT5.0.1把这个函数取消掉了,可以用toLatin1这个函数
- ubuntu库文件路径pkgconfig
settings--->compiler and bug settings -->link settings 在左边添加libpthread.a ,右边添加 -lpthread即可. u ...
- [原创]解读2017 OWASP Top10漏洞体系(含接口安全)
2017年4月初,OWASP发布了关于Top10的征求意见版. 争议最大的是A7攻击检测与防范不足. 但我主要是按照日常的渗透漏洞进行解读分析的. 解读完毕后,首发t00ls原创文章. https:/ ...
- SpringCloud之服务注册-eureka
类似于DUBBO 的zookeeper, SpringCloud本身提供一套服务注册中心--eureka 与zookeeper的区别在于 1:zookeeper本身就是一个应用,安装即可用:eurek ...
- nginx 集群介绍
nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...
- windows环境下配置tornado
1.前言 在网上看过一些在windows下配置tornado的教程,有一些写的十分复杂,让人望而生却.然后我就自己试着在windows下面配置tornado.我发现,方法非常简单,短短几 ...
- Struts+Spring+Hibernate整合
这段笔记三两年前写的,一直因为一些琐事,或者搞忘记了,没有发.今天偶然翻出了它,就和大家一起分享下吧. 1.导入jar包 Struts的jar包: Spring的jar包: Hibernate的jar ...
- EBS单实例上所有正在运行的并发请求以及请求目前的状态
--EBS单实例上所有正在运行的并发请求以及请求目前的状态---一个实例上运行的所有并发请求的总结和他们目前的状态以及等待状态 select w.seconds_in_wait "Se ...
- Selenium WebDriver之JavaScript
WebDriver提供了方法来同步/异步执行JavaScript代码,这是因为JavaScript可以完成一些WebDriver本身所不能完成的功能,从而让WebDriver更加灵活和强大. 本文中所 ...
- 模拟远程HTTP的POST请求
建立请求,以模拟远程HTTP的POST请求方式构造并获取处理结果 /// <summary> /// 建立请求,以模拟远程HTTP的POST请求方式构造并获取处理结果 /// </s ...