参考:http://blog.csdn.net/rually/article/details/8585268

#include<iostream>
using namespace std;
#define MAX 126
int first[MAX],second[MAX]; void pow(char base[],int n) //base 有效数字
{
int k=;
int point=-;//小数点的位置
int tmp[MAX];//存放临时乘积
//初始化 为0
for(int i=;i<MAX;i++ )
{
first[i]=second[i]=;
}
//将输入的底数反过来存入first second
for(int i=;i>=;i--)
{
if(base[i]!='.')
{
first[k]=second[k++]=base[i]-'';
}
else //记录小数点的位置
{
point=-i; // 小数点后面有几位数字
}
}
point=point*n; //乘方 乘n-1次 first 里面存放的是每次乘方的结果 core
for(int i=;i<n-;i++)
{
//每次乘方前需要将存放临时结果的tmp清0
for(int j=;j<MAX;j++)
{
tmp[j]=;
}
//开始乘方
for(int j=;j<*(i+);j++) /// first[j] 数字地一次有效位数5 平方变成10位15 ,20位。。。。
{
for(int k=;k<;k++) //second[k]
{
tmp[j+k]+=first[j]*second[k]; //core 结果逐位的乘原数 j表示错位
}
}
//进位
for(int k=;k<*(i+); k++)
{
if(tmp[k]>)
{
tmp[k+]+=(int)(tmp[k]/);
tmp[k]=tmp[k]%;
}
//tmp付给first
first[k]=tmp[k];
}
} //end 乘方 //计算出有效数位的长度
//将数字的前面和后面的小数点去掉
int back=,front=point ;
for(int i=;i<point;i++) //后面的输出截止点
{
if(first[i]!=)
{
back=i;
break;
}
}
for(int i=*n-;i>=point;i--) //前面的输出起点
{
if(first[i]!=)
{
front=i;
break;
}
} //将计算结果打印出来
for(int ii=front;ii>=back;ii--)
{
if(ii==point)// 因为是从最右边开始 所以的到ii的时候说明右面还剩ii位数字
{
//if(first[ii]!=0)
//{
// cout<<first[ii]<<".";
//}
//else
//{
// cout<<".";
//}
if(first[ii]!=)
{
cout<<first[ii];
} else
{
if(ii<front)
{
cout<<first[ii];
}
}
cout<<".";
}
else
{
cout<<first[ii];
}
}
} int main()
{
//char a[7]="0.4321"; //【6】会错误 最后还需一个“ ”
//int n=20;
//char a[7] = "99.999";
//int n = 25;
char a[] = "3.2000";
int n = ;
pow(a,n); cin.get();
return ;
}

ACM_1001_Exponentiation 详解的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  6. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  7. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  8. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  9. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

随机推荐

  1. 配置appium 1.6.3 for MAC

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } 安装 ...

  2. 【WebGoat习题解析】Parameter Tampering->Bypass HTML Field Restrictions

    The form below uses HTML form field restrictions. In order to pass this lesson, submit the form with ...

  3. php empty,isset,is_null比较(差异与异同)

    php empty,isset,is_null比较(差异与异同)  http://www.cnblogs.com/chengmo/archive/2010/10/18/1854258.html

  4. 删除win8的网络连接记录

    打开注册表,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles,修改各个子项里的P ...

  5. SAP语音读汉字

    厉害了,WORD哥! 输入汉字,竟然可以读出来... 这真是变态用户必备神技啊 REPORT ZLYTEST001. INCLUDE OLE2INCL. DATA: OLE TYPE OLE2_OBJ ...

  6. 学习PYTHON之路, DAY 3 - PYTHON 基础 3 (函数)

    一 set 集合 (无序且不重复的元素集合) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 删除一项: t.discard('H') t ...

  7. IO 相关配置参数

    INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作.顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_grou ...

  8. EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(四)

    前言 这一篇,我们终于到了讲解Entity Framework CodeFirst 的时刻了,首先创建实体对象模型,然后会通过配置Fluent API的方式来对实体对象模型进行完整的数据库映射操作. ...

  9. Spring整合Ehcache管理缓存(转)

    目录 前言 概述 安装 Ehcache的使用 HelloWorld范例 Ehcache基本操作 创建CacheManager 添加缓存 删除缓存 实现基本缓存操作 缓存配置 xml方式 API方式 S ...

  10. 激活Microsoft Office professional plus 2010

    1. 下载工具 http://pan.baidu.com/s/1dDDFhEL 2. 启动工具 双击Office 2010 Toolkit.exe 在Activation选项栏中选择AutoKMS C ...