POJ 1001 Exponentiation
题意:求c的n次幂……要求保留所有小数……
解法:一开始只知道有BigInteger……java大数+模拟。第一次写java大数……各种报错各种exception……ORZ
没有前导0和小数后面的补位0,整数的话不输出小数点,wa点就这些···被整数后面的小数点坑死了···
代码:
放渣代码……
import java.math.BigInteger;
import java.util.Scanner; public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
String s;
int n;
s = cin.next();
n = cin.nextInt();
String s1 = "";
int len = s.length();
int x = -1;
for(int i = 0; i < len; i++)
{
if(s.charAt(i) != '.')
s1 += s.charAt(i);
else
x = i;
}//去掉输入中的小数点,并记录小数点出现在第几位
BigInteger ans = new BigInteger(s1);
ans = ans.pow(n);//计算去小数点后的整数的n次幂
if(x == -1)//如果没出现小数点说明输入是整数
System.out.println(ans);
else
{
x = 5 - x;//计算小数点后有几位
x *= n;//计算积的小数点后有几位
boolean flag = false;
String s2 = ans.toString();
len = s2.length();
String res = "";
for(int i = len - 1, j = 0; (i >= 0) || (j < x); i--, j++)补小数点并去掉多余的0
{
if(i < 0)
res += '0';
else
{
if(s2.charAt(i) == '0')
{
if(flag)
res += s2.charAt(i);
}
else
{
res += s2.charAt(i);
flag = true;
}
}
if(j + 1 == x)
{
if(flag)
res += '.';
flag = true;
}
}
flag = false;
len = res.length();
for(int i = len - 1; i >= 0; i--)
{
if(res.charAt(i) == '0')//去前导0
{
if(flag)
System.out.print(res.charAt(i));
}
else
{
System.out.print(res.charAt(i));
flag = true;
}
}
System.out.println("");
}
}
}
}
后来!有人告诉我还有BigDecimal!直接哭晕在厕所!
代码:
import java.math.*;
import java.util.*; public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigDecimal ans;
int n;
while(cin.hasNext())
{
ans = cin.nextBigDecimal();
n = cin.nextInt();
ans = ans.pow(n);
String res = ans.stripTrailingZeros().toPlainString();
if(res.charAt(0) != '0')
System.out.print(res.charAt(0));
int len = res.length();
for(int i = 1; i < len; i++)
System.out.print(res.charAt(i));
System.out.println();
}
}
}
嗯~一开始输出发现有的小数变成了科学计数法~学到两个函数
BigDecimal.stripTrailingZeros()去掉后面多余的0
BigDecimal.toPlainString()用来展开科学计数法
POJ 1001 Exponentiation的更多相关文章
- 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 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- [POJ] #1001# Exponentiation : 大数乘法
一. 题目 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 156373 Accepted: ...
- poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 138526 Accepted: 33859 ...
- POJ 1001 Exponentiation(JAVA,BigDecimal->String)
题目 计算实数a的n次方,具体输出格式看案例 import java.util.*; import java.math.*; public class Main { public static voi ...
- POJ 1001 Exponentiation 模拟小数幂
模拟小数幂 小数点位 pos 非零末位 e 长度 len 只有三种情况 pos > len pos < e e < pos < len #include <iostrea ...
- Poj 1001 / OpenJudge 2951 Exponentiation
1.链接地址: http://poj.org/problem?id=1001 http://bailian.openjudge.cn/practice/2951 2.题目: Exponentiatio ...
- 【POJ 1001】Exponentiation (高精度乘法+快速幂)
BUPT2017 wintertraining(15) #6A 题意 求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25) 题解 将R用字符串读 ...
随机推荐
- Matlab删除NaN数据
删除包含NaN的行: a(any(isnan(a), 2),:) = []; 删除全部为NaN的行: a(all(isnan(a), 2),:) = [];
- Asp.Net MVC过滤器小试牛刀
在上学期间学习的Asp.Net MVC,基本只是大概马马虎虎的了解,基本处于知其然而不知其所以然.现在到上班,接触到真实的项目,才发现还不够用,于是从最简单的过滤器开始学习.不得不说MVC的过滤器真是 ...
- 一个简单的aJax——后台用servlet技术
示例:webDemo 一.客户端 <%-- Created by IntelliJ IDEA. User: Administrator Date: 15-12-2 Time: 上午5:41 To ...
- springMVC数据封装成POJO
springMVC把前台的数据封装为POJO与struts2的封装形式不同.struts2需要在控制器声明需封装的POJO,而springMVC不需要任何准备工作,只需在相应的方法的参数中加上需封装的 ...
- asp.net单点登录(SSO)解决方案
前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所 ...
- 深入js的面向对象学习篇(继承篇)——温故知新(三)
写这篇有关继承的文章时,突然想起,几天前的面试.因为习惯在学习知识的时候加上自己的理解,很喜欢用自己话来解释,于是乎当面试被问起继承原理时,噼里啪啦一大堆都是自己组织的话,(也可能是因为个人紧张.外加 ...
- DataGridView 列自适应宽度 设置
代码: Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 或者设置DataGridView的AutoSizeColu ...
- "Principles of Reactive Programming" 之<Actors are Distributed> (1)
week7中的前两节课的标题是”Actors are Distributed",讲了很多Akka Cluster的内容,同时也很难理解. Roland Kuhn并没有讲太多Akka Clus ...
- 论MOBA类游戏五号位的重要性
观众朋友们,也许你对题目很好奇,才打开这篇文章.为什么技术圈中会出现游戏类的软文?如果时间充足,可以继续往下看. MOBA 类游戏的兴起,逐渐吞噬游戏市场,以病毒式的扩张方式肆意改变着游戏玩家内心对游 ...
- POJ3697+BFS+hash存边
/* 疾速优化+hash存边 题意:给定一个包含N(1 ≤ N ≤ 10,000)个顶点的无向完全图,图中的顶点从1到N依次标号.从这个图中去掉M(0 ≤ M ≤ 1,000,000)条边,求最后与顶 ...