poj 1001
http://poj.org/problem?id=1001
这是一道高精度的运算,如果你之前有写过那种高精度的乘法的题目的话,做这个也还是比较简单的。、
思路:我是首先把小数点的位置确定下来,然后其他的数字不分一起运算,最后在添加小数点。
#include <stdio.h>
#include <iostream>
#include <string.h> int nu[],num[];
char inp[];
int n,loc; int nc() //这一个就是高精度的乘法的算法用的。
{
int tmp[]={};
for(int i=;i<;i++)
for(int m=;m<=;m++)
{
tmp[m+i]+=nu[i]*num[m];
}
for(int i=;i<;i++)
{
if(tmp[i]>=){
tmp[i+]+=tmp[i]/;
tmp[i+]+=(tmp[i]-(tmp[i]/)*)/;
tmp[i]=tmp[i]%;
}
else if(tmp[i]>=){
tmp[i+]+=tmp[i]/;
tmp[i]=tmp[i]%;
}
nu[i]=tmp[i];
}
return ;
} int main()
{
// freopen("in.txt","r",stdin);
while(scanf("%s%d",inp,&n)!=EOF)
{
memset(nu,,sizeof(nu));
int i,m;
for(i=;inp[i]!='.';i++); //找出小数点的位置。
loc=(-i)*n;
for(i=,m=;i>=;i--,m++)
{
if(inp[i]=='.') m--;
else {
num[m]=inp[i]-'';
nu[m]=inp[i]-'';
}
}
for(i=;i<n;i++)
nc();
int mark=,flog=;
for(int i=;i<=;i++) //用来除去后导0的。
{
if(i==loc){
mark=i;
flog=;
break;
}if(nu[i]!=){
mark=i;
break;
}
}
// printf("%d\n",mark);
for(i=,m=;i>=mark;i--,m--)
{
if(nu[i]!=&&i==m) m--;
if(i!=m) printf("%d",nu[i]);
if(i==loc||(loc>i&&i==m))
{
if(!flog) printf(".");
m--;
}
}
printf("\n");
}
return ;
}
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 解题报告 高精度大整数乘法模版
题目是POJ1001 Exponentiation 虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于 ...
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- POJ 1001 Exponentiation(JAVA,BigDecimal->String)
题目 计算实数a的n次方,具体输出格式看案例 import java.util.*; import java.math.*; public class Main { public static voi ...
- [POJ] #1001# Exponentiation : 大数乘法
一. 题目 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 156373 Accepted: ...
- 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 ...
随机推荐
- JQ实现右下角scrollTop()事件
废话不多说,先贴代码 <script> $(document).ready(function(){ $("#id").hide(); $(function(){ // ...
- linux程序设计1
a.out 的意思是 assembler output,即汇编输出. C语言的头文件一般位于 /usr/include/ 目录下,而依赖于特定 Linux 版本的头文件通常可在目录 /usr/incl ...
- 大熊君大话NodeJS之------Http模块
一,开篇分析 首先“Http”这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的, NodeJS作为一个宿主运行环境,以 ...
- javascript string 函数集
JavaScript_String对象说明 string中文为"字符串"的意思,String继承自Object对象,此对象提供字符串的查找操作等函数 JavaScript字符串类型 ...
- UVA1376.Animal Run (最小割转为最短路 && dijkstra)
Animal Run Time Limit:6000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status ...
- PHP团队 编码规范 & 代码样式风格规范
一.基本约定 1.源文件 (1).纯PHP代码源文件只使用 <?php 标签,省略关闭标签 ?> : (2).源文件中PHP代码的编码格式必须是无BOM的UTF-8格式: (3).使用 U ...
- C语言中free函数是如何确定要释放多少内存空间的
本文链接:http://www.cnblogs.com/xxNote/p/4009359.html 今天看书的时候看到free函数释放动态申请的内存时只需要把内存块的首地址传过去就行了,显然仅仅依靠首 ...
- 原生态js,鼠标按下后,经过了那些单元格
本来是要判断那些单元格被选中,结果发现行不通,只能判断鼠标按下后,经过了那些单元格 之所以发出来,是觉得案例还有很多有意思的地方 onmouseover 的持续触发,导致了很多重复元素 由于将事件绑 ...
- (一)css代码积累——自己经常忘记,但是总记不住的代码
1.透明度设置 90%透明:filter:alpha(opacity=90);-moz-opacity:0.90;-khtml-opacity: 0.90;opacity: 0.90; 80%透明:f ...
- hdu4747——Mex
1.题目大意:对一个序列的每一个区间求Mex,最后所有的mex相加(mex就是SG的那个),力求nlogn... 2.分析:最近开始刷线段树了,还是有很多不会啊 首先把1-1 1-2 1-- 1-n这 ...