码迷,mamicode.com
首页 > 编程语言 > 详细

Octal Fractions java秒 C++

时间:2015-05-07 14:08:31      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

                            Octal Fractions

题目抽象:   将八进制小数转换成十进制小树。小数的为数很大。

可以用java  中的BigDeciaml 秒掉。  time:297ms

 1 import java.math.*;
 2 import java.util.*;
 3 import java.io.*;
 4 import java.text.*;
 5 
 6 public class Main
 7 {
 8     static int MS=3005;
 9     public static void main(String[] args)
10     {
11         Scanner cin=new Scanner(new BufferedInputStream(System.in));
12         while(cin.hasNext())
13         {
14             String str=cin.next();
15             BigDecimal sum=new BigDecimal(0);
16             BigDecimal tmp=new BigDecimal(1);
17             BigDecimal eight=new BigDecimal(8);
18             for(int i=2;i<str.length();i++)
19             {
20                 tmp=tmp.divide(eight);
21                 sum=sum.add(tmp.multiply(new BigDecimal(str.charAt(i)-‘0‘) ));        
22             }
23             System.out.println(str + " [8] = " + sum.toString() + " [10]");
24         }
25         cin.close();
26     }
27 }

 

 

C++    time : 0ms

 

 1 #include <iostream>
 2 #include <string.h>
 3 #include <cstdio>
 4 using namespace std;
 5 const int MS=1001;
 6 
 7 int main()
 8 {
 9     char str[MS],ans[3*MS];
10     int i,j,index,num;
11     while(scanf("%s",str)!=EOF)
12     {
13         int len=strlen(str);
14         index=0;
15         memset(ans,0,sizeof(ans));
16         for(i=len-1;i>1;i--)
17         {
18             num=str[i]-0;
19             for(j=0;j<index||num;j++)
20             {
21                 num=num*10+(j<index?ans[j]-0:0);
22                 ans[j]=num/8+0;
23                 num=num%8;
24             }
25             index=j;
26         }
27         printf("%s [8] = 0.%s [10]\n",str,ans);
28     }
29     return 0;
30 }

 

Octal Fractions java秒 C++

标签:

原文地址:http://www.cnblogs.com/767355675hutaishi/p/4484624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!