POJ Octal Fractions(JAVA水过)
题目链接: id=1131" target="_blank">CLICK HERE~
尽管java一下模拟水过,可是我看到别人的一段奇妙代码,贴出和大家共享。
import java.math.*;
import java.util.*; class Main{
public static void main(String args[]){
Scanner cin = new Scanner(System.in);
BigDecimal Eight = new BigDecimal(8);
while(cin.hasNext()){
String num;
num = cin.nextLine();
BigDecimal ans = new BigDecimal(0);
BigDecimal tmp = new BigDecimal(1);
for(int i = 2;i < num.length();++i){
tmp = tmp.divide(Eight);
ans = ans.add(new BigDecimal(num.charAt(i) - '0').multiply(tmp));
}
System.out.println(num + " [8] = " + ans + " [10]");
}
}
}
这个算法是将除法转变为乘法。对于0.d1d2d3 ... dk [8],本来是d1/8+d2/(8^2)+...+dk/(8^k)。这个算法将 dn/8转变为 dn * 125。然后不断让 y 乘以 1000。起到保存小数位数的作用。最后的结果就相当于是 对dn每次乘以0.125。
#include<cstdio>
#include<cstring>
char c[50];
int i,l;
double x,y;
int main()
{
while(scanf("%s",c)!=EOF)
{
printf("%s [8] = ",c);
l=strlen(c)-1;
x=0;
y=1;
for(i=l;i>1;i--)
{
x=((c[i]-'0')*y+x)*125;
y*=1000;
}
x/=y;
i=0;
while(x)
{
c[i]=int(x*=10)%10+'0';
x-=c[i]-'0';i++;
}
c[i]='\0';
printf("0.%s [10]\n",c);
}
}
POJ Octal Fractions(JAVA水过)的更多相关文章
- Octal Fractions java秒 C++
Octal Fractions 题目抽象: 将八进制小数转换成十进制小树.小数的为数很大. 可以用java 中的BigDeciaml 秒掉. time:297ms 1 import java. ...
- Octal Fractions
Octal Fractions Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 149 Solved: 98 Description Fractions ...
- POJ 1488 Tex Quotes --- 水题
POJ 1488 题目大意:给定一篇文章,将它的左引号转成 ``(1的左边),右引号转成 ''(两个 ' ) 解题思路:水题,设置一个bool变量标记是左引号还是右引号即可 /* POJ 1488 T ...
- poj 1131 Octal Fractions(高精度小数进制转换) Java
虽然题目那么长其实就是把8进制的浮点数转换成10进制,为了练习Java Biginteger 类 我这里用的是Java,也可以用数组模拟. import java.math.BigDecimal; i ...
- POJ 2389 Bull Math(水~Java -大数相乘)
题目链接:http://poj.org/problem?id=2389 题目大意: 大数相乘. 解题思路: java BigInteger类解决 o.0 AC Code: import java.ma ...
- TOJ 2861 Octal Fractions
描述 Fractions in octal (base 8) notation can be expressed exactly in decimal notation. For example, 0 ...
- poj 2506 Tiling(java解法)
题目链接:id=2506">http://poj.org/problem?id=2506 本题用的java解的.由于涉及到大数问题,假设对java中的大数操作不熟悉请点这儿:链接 思路 ...
- poj 2105 IP Address(水题)
一.Description Suppose you are reading byte streams from any device, representing IP addresses. Your ...
- poj 2000 Gold Coins(水题)
一.Description The king pays his loyal knight in gold coins. On the first day of his service, the kni ...
随机推荐
- Angulajs 表单的ng-model绑定
1.对于文本框,只需设置 ng-model 属性就可以实现双向绑定,如: <input type="text" class="form-control" ...
- java线程学习——汉堡销售问题
汉堡店中有一个负责做汉堡的厨师,一个负责销售的营业员,用java线程表示他们的营业过程: 问题原型就是生产者与消费者的问题. 首先定义一个汉堡包箱子类与几个相关的变量类: public class H ...
- NeHe OpenGL lession 4
// lession4.c #include <OpenGL/OpenGL.h> #include <GLUT/GLUT.h> #include <stdio.h> ...
- php:检测用户当前浏览器是否为IE浏览器
/** * 检测用户当前浏览器 * @return boolean 是否ie浏览器 */ function chk_ie_browser() { $userbrowser = $_SERVER['HT ...
- 2014多校3 Wow! Such Sequence!段树
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=4893 这个问题还真是纠结啊--好久不写线段树的题了.由于这几天学伸展树.然后认为线段树小case了. ...
- Visual Studio warning MSB3270:There was a mismatch between the processor architecture of the project being built "MSIL"
Problem: There was a mismatch between the processor architecture of the project being built "MS ...
- JavaSE学习总结第04天_Java基础语法3
04.01 选择结构switch语句的格式及其解释 switch语句的格式: switch(表达式) { case 值1:语句体1;break; case 值2:语句体2;break; ...
- TortoiseSVN和Eclipse中subversion无法协同使用
环境: Eclipse版本Luna, 第一次安装subversion插件时, 使用了http://download.eclipse.org/releases/luna中的Subversive, 版本为 ...
- ODBC、OLE DB、 ADO、ODAC、ODP.NET
面对各式各样.越来越多的数据来源和访问需求.软件开发框架中一般都提供了统一的访问接口和方法,来屏蔽数据库底层差异. 各式各样的Provider提供者. ODBC(Open Database Conne ...
- cocos2dx工程
1. create-android-project.sh 进入 pro.android/ ln -s ../Resources ./Resources