UVa 748 / POJ 1001 Exponentiation (浮点高精度求幂&正则表达式的应用)

ThreeJS教程:地图案例(包围盒、正投影) 推荐:将加入你的3D工具链。 阅读详情

748 - Exponentiation

Time limit: 3.000 seconds

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=689

http://poj.org/problem?id=1001

Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.

This problem requires that you write a program to compute the exact value of Rn where R is a real number (0.0 < R < 99.999) and n is an integer such that $0 < n \le 25$.

Input 

The input will consist of a set of pairs of values for  R  and  n . The  R  value will occupy columns 1 through 6, and the  n  value will be in columns 8 and 9.

Output 

The output will consist of one line for each line of input giving the exact value of  R n . Leading zeros and insignificant trailing zeros should be suppressed in the output.

Sample Input 

95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12

Sample Output 

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201

Description

对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 

现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(R n),其中n 是整数并且 0 < n <= 25。

Input

T输入包括多组 R 和 n。 R 的值占第 1 到第 6 列,n 的值占第 8 和第 9 列。

Output

对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。


参考资料:正则表达式30分钟入门教程


完整代码:

/*UVa: 0.242s*/
/*POJ: 125ms,3340KB*/

import java.util.*;
import java.math.*;
import java.io.*;

public class Main {
	static Scanner cin = new Scanner(new BufferedInputStream(System.in));

	public static void main(String[] args) {
		while (cin.hasNext()) {
			BigDecimal R = cin.nextBigDecimal();
			int n = cin.nextInt();
			String str = R.pow(n).stripTrailingZeros().toPlainString();
			// 返回移除所有尾部零的,不带指数字段的此BigDecimal的字符串表示形式
			if (str.indexOf("0") < str.indexOf("."))
				str = str.replaceFirst("^0*", "");
				// ^匹配字符串的开始,*表示重复零次或更多次
			System.out.println(str);
		}
	}
}

Source

项目经理面试 5 大高频题 + 实战回答模板,帮你稳拿 offer 项目经理面试5大高频问题及应答技巧 摘要:本文总结了项目经理岗位常见的5个面试问题及回答策略,帮助求职者更有针对性地准备面试。核心问题包括:1)描述负责过的典型项目;2)常用项目管理工具;3)项目遇到的挑战及解决方案;4)风险管理方法;5)项目成功标准。每个问题都从面试官考察重点、回答技巧、实战案例三个维度进行分析,强调要用STAR法则(情境-任务-行动-结果)结构化表达,突出解决问题的能力而非简单罗列经历。特别提醒要量化项目成果(如提前2周上线、节省8%预算等),并注意展示商业思维和团队协作能力。 阅读详情

相关推荐

从Oracle迁移数据到Hadoop

目标:把Oracle 下的数据文件迁移到 Hadoop , 数据表都是上亿条,每个数据表的空间都超过100G。 关键是建立数据文件是UTF8格式,这样数据中的汉字在Hadoop 里显示才正常。 平台:CentOS 6.10 工具:Python 2.7 cx_Oracle 库 Oracle10.2.0.4.0 Hadoop 2.7.2-transwarp-5.2.1 1. 查看表...

预则立 4236

C++快速幂算法q_pow() - 详解

文章如需转载,请联系作者!

ACWchinese2010的博客 3571

海波龙(Oracle Hyperion)单点登陆问题记录

Oracle海波龙套件已经多年未更新,按Oracle官方文档实施单点登陆启用之后,SmartView工具通过专用链接方式无法登陆系统。 在抓包逆向分析之后 定位到HspSmartViewServlet类在执行以下代码时获得的ssotoken无效导致,在某大厂工作的时候曾通过在filter中截获请求的方式植入Attribute,保留账号密码并在单点程序中处理实现登陆。 但在完美世界的环境中...

cainiaoEzu的专栏 1970

一种快速的幂运算方法(底数是自然数e,指数是浮点数)

问题   给一个浮点数 yyy,现在需要你求出 eye^yey 的值是多少。   最便捷的方法是用库函数,例如在C++中&lt;math.h&gt;头文件提供了exp()函数,但是速度不够快。   在深度学习(DeepLearning)中经常需要花费大量时间进行幂运算,典型场景是使用激活函数和计算概率分布的时候。例如在 SoftMax 层通常需要进行底数是 eee ,指数是浮点数的幂运算。   提高幂运算的速度能有效提高神经网络的推理速度。 方法   参考文章《A Fast, Compact Approx

Yemiekai的博客 6282

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 508

将点云坐标转换成世界坐标的demo

将点云坐标转换成世界坐标的demo

howard789的博客 2206

快速幂(c++)

a^n 正常实现得时间复杂度为O(n) 快速幂得时间复杂度为O(log n) 主要思想就是以二进制得角度看待 n 比如 3113^{11}311 11的二进制为1011 现在就变成了 3二进制10113^{二进制1011}3二进制1011 1011=23+22∗0+21+201011 = 2^3+2^2*0+2^1+2^01011=23+22∗0+21+20 现在就成了 323+22∗0+21+203^{2^3+2^2*0+2^1+2^0}323+22∗0+21+20 转化一下 323∗322∗0∗321∗

weixin_44984664的博客 617

AI Agent辅助企业财务分析与预测

企业财务分析与预测是企业管理中至关重要的环节,准确的财务分析与预测能够帮助企业管理者做出明智的决策,合理规划资源,降低风险。然而,传统的财务分析与预测方法往往依赖于人工经验和简单的统计模型,存在效率低、准确性差等问题。随着人工智能技术的飞速发展,AI Agent作为一种智能的软件实体,能够自主地感知环境、做出决策并采取行动,为企业财务分析与预测带来了新的解决方案。

AI天才研究院 921

Uva 537 Artificial Intelligence?(Java正则表达式)

Artificial Intelligence?  Physics teachers in high school often think that problems given as text are more demanding than pure computations. After all, the pupils have to read and understan

小G的ACM之路 985

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

shufawangzhang的博客 3987

五、实战pxe安装ubuntu 22.04 软raid1(实际生产pxe配置)

这段配置文件是一个cloud-init的自动安装配置,用于自动化部署Ubuntu服务器操作系统。它定义了从系统身份、键盘布局、区域设置到磁盘分区和RAID配置的一系列设置,并且包含了在安装过程的最后阶段执行的一些命令。基础设置version: 1指定了autoinstall配置文件的版本。source定义了安装源,这里是ubuntu-server。identity设置了主机名(hostname)、用户(username)和密码(password注意这里的密码是经过加密的。键盘与语言设置。

jundao1997的专栏 999

poj 1001 uva 748 Exponentiation(高精度小数乘法)

题意是求R的n次方,R为0.0 到 99.999 的小数。

渐近自由 731

【大模型】AI 辅助编程操作实战使用详解

AI 编程实战使用详解

congge 8461

POJ1001 HDU1063 UVA748 UVALive5356 Exponentiation【大数】

Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 185108 Accepted: 44559 Description Problems involving the computation of exact values of very large magnitude and precision a...

海岛Blog 847

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

UVA748 Exponentiation

回老家玩了两天,回来先把没做完的题A了。一看输出就想起是poj的第二题哈(第一道A+B),当时看不太会,现在总算研究出来了。虽然是浮点运算但也能看成bign类型。细节地方稍加处理就行了。 发现个问题,这个代码过不去poj1001。有待解决!! 题目: Exponentiation Exponentiation Problems involvin...

weixin_30641465的博客 75

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

POJ 1001 Exponentiation

Exponentiation Time Limit:500MS Memory Limit:10000K Total Submissions:127046 Accepted:31014 Description Problems involving the computation of exact values of v...

weixin_30244681的博客 71

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

UVA10815 java 正则表达式 set

find()部分匹配,查找输入串中与模式匹配的子串 import java.util.Scanner; import java.util.Set; import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UVA10815 { static Set&lt;String&gt; set = new TreeSet&lt;&gt;(); publi

tinkk的博客 255

C++快速幂详解

快速幂相较于普通的幂,具有占用空间少,效率更高等优点,全面碾压普通的幂。 在计算量较小时,二者相差无几,但数据规模一旦上来了,差距也就出来了。

Korloa的博客(A new world for you) 5635

C++ 快速幂

快速幂就是在普通幂运算的基础上尽量减少乘法运算的次数: 例如(7^7)%4 可以看为 ((7%4)^7)%4 (3^7)%4 (((3*3)%4)^6)%4 (1^6)%4 (1^(2*3))%4   // 就像将(7^16)变成(49^8) (1^3)%4....... 下面是对应代码 :a为底数,b是指数,m是要准备取模的数 快速幂取模就是在快速幂的基础上每步取模! l...

slience_646898的博客 2000

数学表达式的计算-使用正则表达式

这种方式的基本思想就是循环使用正则表达式找出字符串中不带括号的那一部分,再分析出各个数字和运算符以及函数,并执行运算,然后将结果替换原表达式中相应部分,直到最后不能再进行任何替换。如: (3+5)*sin(7+9) -----&gt; (3+5)*sin(7+9) -----&gt;8*sin(7+9) -----&gt;8*sin16---...

1199

C++ 快速幂运算

1.概念:快速幂运算也叫反复平方法。顾名思义,算法就蕴含在名字中。2.原理: 假设要求x^n,如果n = 2^k,那么原题可以很轻松的表示为:x^n = ((x^2)^2)^2…。这样只要做k次平方运算就能解决,时间复杂度就从O(n)下降到log(n)。 由上面的分析可知,只要幂运算的幂可以写成2^k的形式,就可以用上面的方法降低时间复杂度。所以我们可...

weixin_34015336的博客 2618

Manacher 算法详解:O(n) 复杂度求最长回文子串

先预处理下:在每个字符的两边都插入一个特殊的符号,比如abba变成#a#b#b#a#,aba变成#a#b#a#(因为Manacher算法只能处理奇数长度的字符串)。同时,为了避免数组越界,在字符串开头添加另一特殊符号,比如$#a#b#a#。 以字符串3212343219为例,处理后变成S[] = "$#3#2#1#2#3#4#3#2#1#9#"。 然后用一个数组Len[i]来记录以字符S[i

AC,∑ndless 4609

类型转换与字符串赋值、分割、合并、复制、比较、查询、翻转详解 (完整代码)

一、类型转换 char数组转int、__int64或double: #include #include #include #include char str[100]; int main(void) { char *stopstr; gets(str); if (strchr(str, '.') == NULL) { if (strlen(str) < 10) print

AC,∑ndless 3121

UVa 455 Periodic Strings (字符串处理)

455 - Periodic Strings Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=396 A character string is said to have period k if it can be f

AC,∑ndless 2599

UVa 11988 Broken Keyboard (a.k.a. Beiju Text) (指针的"思想")

11988 - Broken Keyboard (a.k.a. Beiju Text) Time limit: 1.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=3139 You're typi

AC,∑ndless 2429

TZC 1472 逆置正整数,去前导零 (java一句话秒杀)

逆置正整数 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1472 时间限制(普通/Java):1000MS/10000MS      运行内存限制:65536KByte 描述 输入一个三位正整数,将它反向输出。 输入 3位正

AC,∑ndless 2107
上一篇: 既然C++读作“C加加”,那为什么C#不能读作“C井”呢?
下一篇: UVa 10494 If We Were a Child Again (高精度)
synapse7
博客等级 码龄14年 432粉丝 701原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值