顺序打印一个数字的每一位

#include<stdio.h>
#include<stdlib.h>
int Print_number(int num)
{
if (num > 9)
{
Print_number(num / 10);
}
printf("%d\n", num % 10);
}
int main()
{
Print_number(9527);
system(“pause”);
return 0;
}

在 Java 中,使用递归方法打印一个数的每一位有两种常见情况,即按从低位到高位和从高位到低位的顺序打印。 ### 从低位到高位打印 以下代码可实现从低位到高位打印整数各个数位上的数字,并输出每个数位的名称: ```java public class Recursion { // 最多输入五位整数 public static void main(String[] args) { OutNum(5123); } public static int i = 0; public static String[] numw = new String[] {"个位","十位","百位","千位","万位"}; public static void OutNum(int num) { int lastNum = 0; lastNum = num % 10; System.out.println(numw[i] + "是:" + lastNum); num = num / 10; i++; if (num != 0) { OutNum(num); } } } ``` 在这段代码里,`OutNum` 方法通过取模运算 `num % 10` 得到当前数字的最后一位,接着使用 `num / 10` 去掉最后一位。递归调用在 `num` 不为 0 时持续进行,直至所有数位都被处理完毕 [^1]。 ### 从高位到低位打印 以下几种代码都能实现从高位到低位打印一个数的每一位: ```java // 代码片段 1 public class PrintDigits1 { public static void func(int n) { if (n < 10) { System.out.println(n); return; } func(n / 10); System.out.println(n % 10); } public static void main(String[] args) { func(1234); } } ``` ```java // 代码片段 2 import java.util.Scanner; public class PrintDigits2 { public static void print(int n) { if (n < 10) { System.out.print(n % 10 + " "); } else { print(n / 10); System.out.print(n % 10 + " "); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入数字:"); int n = scanner.nextInt(); print(n); } } ``` ```java // 代码片段 3 import java.util.Scanner; public class PrintDigits3 { public static void print(int n) { if (n > 9) { print(n / 10); } System.out.print(n % 10); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); print(n); } } ``` ```java // 代码片段 4 import java.util.Scanner; public class PrintDigits4 { public static void printf(int x) { if (x < 10) { System.out.print(x + " "); } else { printf(x / 10); System.out.print(x % 10 + " "); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请您输入一个数字:"); int n = sc.nextInt(); printf(n); } } ``` 这些代码的核心逻辑是,若数字小于 10,直接打印数字;若数字大于等于 10,先递归调用函数处理去掉最后一位后的数字,再打印当前数字的最后一位 [^2][^3][^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值