您的位置:首页 > 理论基础 > 数据结构算法

java实现数据结构练习题--仅使用处理单个数字的I/O例程,编写一个过程以输出任意实数(可以是负的)

2017-07-21 16:35 1041 查看

题目要求打印时只能打一个字符,参考了别人的思路,用java实现了下。

package test;

/**

 * @description:由易到难 正整数打印--整数打印--实数打印--处理实数舍入

 */

public class PrintDigit {

 /**

  * 打印正整数

  *

  * @param n

  */

 public static void printOut(int n) {

  if(n<0) return;

  if (n >= 10) {

   printOut(n / 10);

  }

  System.out.print(n % 10);

 }

 /**

  * 打印所有的整数

  * @param n

  */

 public static void printOutIA(int n) {

  if(n<0){

   n=-n;

   System.out.print("-");

   printOut(n);

  }else{

   printOut(n);

  }

 }

 /**

  * 打印实数

  * @param d

  */

 public static void printD(double d){

  if(d<0){

   System.out.print("-");

   d=-d;

  }

  

  int n=(int) d;

  printOutIA(n);

  if(d-n>0){

   System.out.print(".");

   double c=d-n;

   printD1(c*10);

  }

 }

 /**

  * 没有小数点的打印

  * @param d

  */

 public static void printD1(double d){

  int n=(int) d;

  printOutIA(n);

  if(d-n>0){

   double c=d-n;

   printD1(c*10);

  }

 }

 /**

  * 精确打印实数

  * @param d

  */

 public static void printDe(double d ,int e){

  if(d<0){

   System.out.print("-");

   d=-d;

  }

  int n=(int) d;

  printOutIA(n);

  if(d-n>0){

   System.out.print(".");

   double c=d-n;

   double cha=0.5;

   for(int i=0;i<e;i++){

    cha/=10;

   }

   c=c+cha;

   for(int i=0;i<e;i++){

    c*=10;

   }

   printOut((int)c);

  }

 }

 public static void main(String[] args) {

 // printD(32.126);

  System.out.println("******************");

  printDe(-32.126,3);

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐