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);
}
}
题目要求打印时只能打一个字符,参考了别人的思路,用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);
}
}
相关文章推荐
- 仅使用处理单个数字的I/O例程,编写一个过程以输出任意实数(可以是负的)
- 只使用处理IO的printDigit函数,编写一个过程以输出任意实数可以为负(java数据结构与算法习题1.3)
- 只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用处理IO的printDigit函数,编写一个过程以输出任意实数
- 只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用I/O的输入单数字的函数,实现任意实数的输出
- 用c语言编写输出四个整数,这四个整数可以表示1到40之间的任意一个数字。
- 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)
- 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的
- 原串翻转 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string iniString,请返回一个string,为翻转后的字符串
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 4.2题目: 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出