Java递归调用如何实现数字的逆序输出方式
java递归调用实现数字的逆序输出
输入一串数字,将数字逆序输出出来,如:12,运行结果为21;首先不管怎样,我们都要先得到十位上的数字和个位上的数字,十位上的数字,就是用12/10;个位上的数字就是得到他的余数即12%10;然后用字符串将它们加起来,递归调用就是不断调用自身的方法实现他
代码如下:
package com.kaifamiao.day1117;
import java.util.Scanner;
public class DiGui02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请你输入一个数字:");
int num = sc.nextInt();
String ss = way(num);
System.out.println(num+"的逆序为:"+ss);
}
public static String way(int num){
String s="";
if (num<10){
return num+s;
}else {
return s+way(num%10)+way(num/10);
}
}
}
运行结果:
java逆序输出正整数
请用程序实现
输入一个不多于五位的正整数 num,并输出其位数,每一位的数字,以及逆序排列的每位数字。
示例:
- 输入
12345
- 输出
5
12345
54321
请用程序实现
输入一个不多于五位的正整数 num,并输出其位数,每一位的数字,以及逆序排列的每位数字。
示例:
- 输入
12345
- 输出
5
12345
54321
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num=sc.nextInt();
int pa=0;
if(num<10){
pa=1;
}
if(num>=10&&num<100){
pa=2;
}
if(num>99&&num<1000){
pa=3;
}
if(num>999&&num<10000){
pa=4;
}
if(num>9999&&num<100000){
pa=5;
}
System.out.println(pa);
int qian,bai,shi,ge,wan;
wan=num/10000;
qian=(num-wan*10000)/1000;
bai=(num-wan*10000-qian*1000)/100;
shi=(num-wan*10000-qian*1000-bai*100)/10;
ge=num%10;
switch(pa)
{
case 5:
System.out.printf("%d%d%d%d%d\n",wan,qian,bai,shi,ge);
System.out.printf("%d%d%d%d%d",ge,shi,bai,qian,wan);
break;
case 4:
System.out.printf("%d%d%d%d\n",qian,bai,shi,ge);
System.out.printf("%d%d%d%d\n",ge,shi,bai,qian);
break;
case 3:
System.out.printf("%d%d%d%d%d\n",bai,shi,ge);
System.out.printf("%d%d%d\n",ge,shi,bai);
break;
case 2:
System.out.printf("%d%d\n",shi,ge);
System.out.printf("%d%d",ge,shi);
break;
case 1:
System.out.printf("%d\n",ge);
System.out.printf("%d",ge);
break;
}
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章