1069: 三进制小数
来源:互联网 发布:originlab软件下载 编辑:程序博客网 时间:2024/05/29 07:40
题目
Description
你的任务呢,是将一个有理数转换成三进制小数。“什么是三进制小数呢?”你一定会问,这很明白,就是以三为基(二进制数以2为基,而十进制数则以10为基)的小数。
Input
有理数的值都是在0与1之间的,每个有理数都由一个分子和一个分母表示,分子与分母之间隔着一个斜杠。有理数的个数不会超过1000个。
Output
输出格式见样本输出,它是以小数点开头的具有10位精度的3进制数。
Sample Input
1/3
1/4
1/6
7/8
Sample Output
.1000000000
.0202020202
.0111111111
.2121212122
代码块
import java.util.Scanner;//主要就是十进制转二进制一样,并取整,将取得的整数存入到数组中public class Main { static double n = 0.0000000001; public static void main(String[] args) { Scanner cn = new Scanner(System.in); int[] z = new int[10]; while (cn.hasNext()) { String str = cn.next(); String[] s = str.split("/"); int a = Integer.parseInt(s[0]); int b = Integer.parseInt(s[1]); double num = (double) a / b; System.out.print('.'); for (int i = 0; i < 9; i++) { num *= 3; z[i] = (int) (num + n); num -= (int) (double) num + n; } num *= 3; int an = (int) (double) (num + n); num -= (int) (double) num + n; if ((double) (num * 3 + n) >= 2 && an <= 1) z[9] = an + 1; else if ((double) (num * 3 + n) >= 2 && an >= 2) {//进行最后一位满三,向前进位 z[9] = an + 1 - 3; z[8] = z[8] + 1; if (z[8] >= 3) { z[8] = z[8] - 3; z[7] = z[7] + 1; if (z[7] >= 3) { z[7] = z[7] - 3; z[6] = z[6] + 1; if (z[6] >= 3) { z[6] = z[6] - 3; z[5] = z[5] + 1; if (z[5] >= 3) { z[5] = z[5] - 3; z[4] = z[4] + 1; if (z[4] >= 3) { z[4] = z[4] - 3; z[3] = z[3] + 1; if (z[3] >= 3) { z[3] = z[3] - 3; z[2] = z[2] + 1; if (z[2] >= 3) { z[2] = z[2] - 3; z[1] = z[1] + 1; if (z[1] >= 3) { z[1] = z[1] - 3; z[0] = z[0] + 1 - 3; } } } } } } } } } else { z[9] = an; } for (int i = 0; i < 10; i++) { System.out.print(z[i]); } System.out.println(); } }}
0 0
- 1069: 三进制小数
- 三进制小数
- zzuoj1081 三进制小数
- ZZUOJ - 1081 - 三进制小数
- 三进制小数 oj132
- NEUQOJ 1198: 三进制小数
- 小数
- 用10进制小数不能精确表示某些三进制小数
- 大数/小数,大数%小数
- 小数问题
- 小数格式化
- oracle小数
- 保留小数
- mysql 小数
- 格式化小数
- Flex 小数
- 小数问题
- 小数格式化
- bzoj1001(狼抓兔子)
- Java反射优化
- Discuz!论坛教程之DIY调用主题标签TAG修改方法
- tcp协议下,客户端向服务端发送一串文本,在服务端经过处理后,返回文本的大写
- hdu 5723 Abandoned country(最小生成树)
- 1069: 三进制小数
- js里面==和===的区别
- 详细解读Java中的快速排序
- hdu 6026 Deleting Edges
- java中的设计模式
- 创建类的对象的两种不同方式
- POJ 1074 Parallel Expectations 笔记
- 使用Maven导入jar包
- Singleton单例模式-如何防止JAVA反射对单例类的攻击?