个人名片:
博主:酒徒ᝰ.
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
专栏:PTA习题及解析
介绍:记录了博主在pta学习练题的一些方法与笔记。
前言
1.简介
“PTA程序设计类实验辅助教学平台”是由浙江大学主导,杭州百腾教育科技有限公司管理运营,全国高校教师共同建设的程序设计类课程的辅助教学平台。目前,全国538所高校参与,3152位教师共同建设出66095道高质量题目,学生注册用户已达136万;共有14类固定题目集(涵盖C语言、JAVA语言、Python语言、数据结构、数据库系统和中国高校计算机大赛题库等方面)和55类专业课程题目集(涵盖计算机类、电子类、文学类、外语类及华为认证)。包含判断题、填空题、单选题、多选题、程序填空题、函数题、编程题、主观题、多文件编程题和SQL编程题10种题目类型。
2.优点
- 支持20万人同时在线
- 支持多种题型
- 支持多种判题模式
- 为教学质量提供全方位保障
- 即时的答疑系统
一、题目
本题目要求读入1个正整数n,然后编写递归函数reverse(int n)实现将该正整数逆序输出。
输入格式:
输入在一行中给出1个正整数n。
输出格式:
对每一组输入,在一行中输出n的逆序数。
输入样例:
12345
输出样例:
54321
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
二、代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(reverse(n));
}
private static int reverse(int n) {//12345
int num = 0;
int x = n;
while(x != 0){
x = x / 10;
num++;
}
int[] m =new int[num];
int sum = 0;
for (int i = 0; i < num; i++) {
int a = 1;
for (int j = 0; j < i; j++) {
a = a * 10;
}
m[i] = n / a % 10;
}
for (int i = 0; i < num; i++) {
int a = 1;
for (int j = num; j > i+1; j--) {
a = a * 10;
}
m[i] = m[i] * a;
sum = sum + m[i];
}
return sum;
}
}
三、笔记与分析
简单来说,递归就是函数自身对自身的调用,直到遇到终止条件,再对数据做逆向处理,下面就有一个递归的简单例子等你 来处理。
只需要了解递归,将其循环方向颠倒即可。
你可以拿一幅麻将或者扑克来模拟这个过程。
比如你手上的牌上 1 2 3 4 5,你现在要把它逆序。
第一步,你把1放到最右边,变成 2 3 4 5 1
第二步,你把2放到5和1中间,变成 3 4 5 2 1。
…
最后,你的牌就变成了5 4 3 2 1