算法训练 递归输出数字三角形 java 题解 449
2021/10/18 20:11:59
本文主要是介绍算法训练 递归输出数字三角形 java 题解 449,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题描述
输出一个n行的与样例类似的数字三角形,必须使用递归来实现
输入格式
一个正整数数n,表示三角形的行数
输出格式
输出一个与样例类似的n行的数字三角形,同一行每两个数之间用一个空格隔开即可(图中只是为防止题面格式化而用'_'代替空格)
样例输入
4
样例输出
___1
__2_3
_4_5_6
7_8_9_10
数据规模和约定
n<=20
解题思路:
未使用递归,双层for解决。外层控制行,内层控制空格数和数字,注意每行最后不要留空格。
递归的方法写的有点啰嗦了。
java代码:(非递归)
import java.io.*; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int x = 1; StringBuilder builder = new StringBuilder(); for(int i = 1;i <= n;i++) { for(int j = n - i;j > 0;j--) { builder.append(" "); } for(int j = 1; j < i;j++) { builder.append(x++ + " "); } builder.append(x++); builder.append("\n"); } System.out.print(builder.toString()); } }
java代码:(递归)
import java.io.*; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); method(n + 1, n); System.out.print(builder.toString()); } static StringBuilder builder = new StringBuilder(); static int num = 2; public static void method(int temp,int n) { if(temp == 1) { for(int i = 1;i < n;i++) { builder.append(" "); } builder.append("1\n"); return; } method(--temp, n); if(temp != 1) { for(int i = 1;i <= n - temp;i++) { builder.append(" "); } for(int i = 1; i < temp;i++) { builder.append(num++ + " "); } builder.append(num++); builder.append("\n"); } } }
提交截图:
这篇关于算法训练 递归输出数字三角形 java 题解 449的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南