ACM_1001_Exponentiation 详解
参考: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 详解的更多相关文章
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
随机推荐
- 20145218&20145240 《信息安全系统设计基础》实验三 实时系统的移植
课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡献大小排名)20145240 20145218 指导教师:娄嘉鹏 实验日期:2016.11.17 实验时 ...
- cocos2d-x 图片性能测试
本文是原创文章,如需转载,请注明文章出处 本次测试使用的cocos2d-x版本是3.9,测试环境是XCode7自带的iphone5 一.JPG格式与PVR.CCZ格式对比 1.占用空间对比 a)不透明 ...
- 使用 Spring 进行单元测试
一.使用spring中对Junit框架的整合功能 除了junit4和spring的jar包,还需要spring-test.jar.引入如下依赖: <dependency> <grou ...
- ABAP面试问题及侧重点
ABAP面试 1.简单的Report包括哪些东西 2.Dialog 逻辑流以及相应的处理内容 3.用过的几种增强方式:怎么找增强 4.接口和函数的使用,一般遇到自己不会的函数怎么处理 5.关联查询:I ...
- 数位DP入门
HDU 2089 不要62 DESC: 问l, r范围内的没有4和相邻62的数有多少个. #include <stdio.h> #include <string.h> #inc ...
- The type String cannot be constructed. You must configure the container to supply this value.
利用 Enterprise Library 5.0 Microsoft.Practices.EnterpriseLibrary.Common Microsoft.Practices.Enterpris ...
- XmlHelper
获取XML节点的值(http服务使用xml传输数据,节点名称唯一) /// <summary> /// 获取xml节点的值 /// </summary> /// <par ...
- Linux 设备驱动程序 字符设备
已经无法再精简,适合入门. #include<linux/module.h> #include<linux/init.h> #include<asm/uaccess.h& ...
- 深入理解iOS开发中的BitCode功能
前言 做iOS开发的朋友们都知道,目前最新的Xcode7,新建项目默认就打开了bitcode设置.而且大部分开发者都被这个突如其来的bitcode功能给坑过导致项目编译失败,而这些因为bitcode而 ...
- kendo模板 Uncaught Error: Invalid template:' 报错
I was having a problem with a grid toolbar template because of a # in a hrefWorked out that I needed ...