参考: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. [sqoop1.99.7] sqoop命令

    官网文档:http://sqoop.apache.org/docs/1.99.7/user/CommandLineClient.html#delete-link-function 一.了解sqoop数 ...

  2. 添加as源码

    http://blog.csdn.net/zhang31jian/article/details/23258065

  3. Android 三级联动选择城市+后台服务加载数据库

    技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...

  4. [转]JavaScript快速检测浏览器对CSS3特性的支持

    转自:https://yuguo.us/weblog/detect-css-support-in-browsers-with-javascript/ ------------------------- ...

  5. WPF知识总结(一)

    在一个项目中, 发现有的项目引用的动态库是一个网页地址,下面就看看这个网页地址怎么来的. 目标:新建一个WPF工程,实现一个用户控件的功能.在 工程中加入一个类库,然后在类库中增加一个用户控件页面,在 ...

  6. NoSQL生态系统——hash分片和范围分片两种分片

    13.4 横向扩展带来性能提升 很多NoSQL系统都是基于键值模型的,因此其查询条件也基本上是基于键值的查询,基本不会有对整个数据进行查询的时候.由于基本上所有的查询操作都是基本键值形式的,因此分片通 ...

  7. JS对数字进行货币格式化并且保留两位小数点,小数用0补全

    /** * 将数值四舍五入(保留2位小数)后格式化成金额形式 * * @param num 数值(Number或者String) * @return 金额格式的字符串,如'1,234,567.45' ...

  8. nano编辑器使用教程

    使用Linux VPS会经常和编辑器打交道,一般常用的是vi和nano,虽然vi功能强大,但是相对新手来要稍微难上手,GNU nano是一个体积小巧而功能强大的文本编辑器.这里就简单说一下nano的使 ...

  9. solr全文检索原理及solr5.5.0 Windows部署

    文章原理链接:http://blog.csdn.net/xiaoyu411502/article/details/44803859 自己稍微总结:全文检索主要有两个过程:创建索引,搜索索引 创建索引: ...

  10. bzoj3504: [Cqoi2014]危桥

    题意:给出一个图,有的边可以无限走,有的只能走两次(从一头到另一头为一次),给定两个起点以及对应的终点以及对应要走几个来回,求判断是否能完成. 先来一个NAIVE的建图:直接限制边建为容量1,无限制为 ...