HDOJ/HDU 2549 壮志难酬(取小数点后几位~)

Problem Description

话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,“天将降大任于斯人也,必先劳其筋骨,饿其体肤,空乏其身”他说。可惜,由于去年取上将首级时不慎右手右关节第七次骨折,养伤达一年之久,空有一腔抱负却壮志难酬,如今天下危亡,习武之人又怎能袖手旁观,于是他决定出山协助威士忌共抗辽贼,这时他的对头枫冰叶子出现,两人都是水属性,但由于十年前的一场恩怨(这是后话)势成水火。

枫冰叶子要求甘露回答一个问题,否则不让他离开,可惜甘露绞尽脑汁未果,希望你来帮他解决,助他完成大业。

问题是这样的:给你一个小数x,让你算出小数点后第n位是什么,(1 <= n <= 6)

Input

首先输入一个t,表示有t组数据,跟着t行:

每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况)

然后跟一个n,表示小数点后第几位

Output

输出一个数表示小数点后第n位的数

Sample Input

3

1.234 1

2.345 2

3.456 3

Sample Output

2

4

6

可以用Java大数,也可以用字符串处理~

但是不能用double~因为double型数据在内存中的存储不是精确的,总是接近这个数,但不等于这个数。

import java.math.BigDecimal;
import java.util.Scanner;

/**
 * @author 陈浩翔
 *
 * 2016-5-16
 */
public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt();
        while(t-->0){
            //因为double型数据在内存中的存储不是精确的,总是接近这个数,但不等于这个数。
            //double n = sc.nextDouble();//所以不能用double
            BigDecimal n = sc.nextBigDecimal();
            int m = sc.nextInt();
            n = n.scaleByPowerOfTen(m);
            System.out.println(n.remainder(new BigDecimal(10)).intValue());
        }
    }
}
时间: 2024-10-03 19:26:39

HDOJ/HDU 2549 壮志难酬(取小数点后几位~)的相关文章

HDU 2549 壮志难酬

壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12541    Accepted Submission(s): 4166 Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先劳其筋骨,饿其体

HDU 2549 壮志难酬 (水题,但有个小坑!)

壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10552    Accepted Submission(s): 3512 Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先劳其筋骨,饿其

HDU 2549 壮志难酬(字符串,处理小数点)

/* 给你一个小数x,让你算出小数点后第n位是什么,(1 <= n <= 6) Input 首先输入一个t,表示有t组数据,跟着t行: 每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况) 然后跟一个n,表示小数点后第几位 Output 输出一个数表示小数点后第n位的数 */ #include <stdio.h> #include <string.h> #include <math.h> #include <algor

Java中取小数点后两位(四种方法)

摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法) 一 Long是长整型,怎么有小数,是double吧     java.text.DecimalFormat   df=new   java.text.DecimalFormat("#.##");     double   d=3.14159;     System.out.println(df.format(d)); 二 java.math.BigDecimal     B

java 取小数点后两位 不四舍五入,怎么做

java 取小数点后两位 不四舍五入,怎么做 正常版: //正常版: import java.text.DecimalFormat; import java.math.RoundingMode; DecimalFormat formater = new DecimalFormat(); formater.setMaximumFractionDigits(2); formater.setGroupingSize(0); formater.setRoundingMode(RoundingMode.F

javascript 取小数点后几位四种方法

javascript 取小数点后几位方法总结 Javascript取float型小数点后两位,例22.123456取成22.12,如何做? 1.通过substring截取. function getnum() { var num = 22.123456; var result = num.substring(0,s.indexOf(".")+3); alert(result); } 2. 正则表达式. function getnum() { var num = 22.123456; v

smarty string_format用法 取小数点后2位

<{if $d.ul_pv}> <{$d.sum/$d.ul_pv|string_format:'%.2f'}> <{else}> 0.00 <{/if}> <{if $d.ul_pv}> <{$d.sum/$d.ul_pv|string_format:'%.2f'}> <{else}> 0.00 <{/if}>

js保留小数点后N位的方法介绍

利用toFixed函数 代码如下 复制代码 <script language="javascript"> document.write("<h1>JS保留两位小数例子</h1><br>"); var a=2.1512131231231321; document.write("原来的值:"+a+"<br>"); document.write("两位小数点:&q

数值强制显示小数点后4位

ajax调用方式: $.each(data.RESULTSET,function(i,ele){ ele.MTUR_YLD = cellRenderNum100(null,"MTUR_YLD",ele.MTUR_YLD); ele.TMT_YLD = cellRenderNum100(null,"TMT_YLD",ele.TMT_YLD); }) jqwidgets:jqxgrid调用方式: source: { localdata : data.RESULTSET,