题目要求打印时只能打一个字符,参考了别人的思路,用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);
}
}