原题链接:三进制小数
感觉这道题目测试数有漏洞,题目也有点问题。
如果保留10精度,必将有可能会有进制,输出的数可能是1的10精度,也就是1.0000000000
我的代码没有考虑这部分竟然直接过了
import java.util.Scanner;
public class Main_1178 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()) {
String[] s=sc.nextLine().split("/");
int a=Integer.parseInt(s[0]);
int b=Integer.parseInt(s[1]);
int c;
String re=".";
for(int i=0;i<9;i++) {
c=a*3/b;
a=a*3%b;
re=re+c;
}
c=a*3/b;
a=a*3%b;
if(a*3/b==2&&c<=1) {
c++;
re=re+c;
}else if(a*3/b==2&&c==2) {
//没考虑的情况,感觉这里进位可能变为1
}else
re=re+c;
System.out.println(re);
}
}
}
9.9 分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复