递归入门

 1 import java.io.IOException;
 2
 3 public class Digui1 {
 4
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         Digui1  d= new Digui1();
 8         try {
 9             d.printInput();
10         } catch (IOException e) {
11             e.printStackTrace();
12         }
13     }
14
15     private void printInput() throws IOException {
16          char i = (char) System.in.read();
17          if (i != ‘#‘) {
18              printInput();
19          }
20          if (i != ‘#‘) {
21              System.out.print(i);
22          }
23     }
24
25 }

时间: 2024-10-04 17:30:28

递归入门的相关文章

C程序设计的抽象思维-递归入门

[斐波那契序列] 序列中的每一个新项都是它前两项的和. 0    1     1     2     3      5      8       13       21       34      55       89       144  ---- 数学表达式表示序列中的一个新项:   tN = tN-1 +  tN-2 像这种类型的表达式,序列中的每一个元素都是由先前的元素来确定,这种序列称为递归关系. 斐波那契序列的完整定义如下: tn =  n       n= 0 或者 n= 1 t

Problem C: 【递归入门】组合+判断素数

Description 已知 n 个整数b1,b2,…,bn 以及一个整数 k(k<n). 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34. 现在,要求你计算出和为素数共有多少种. 例如上例,只有一种的和为素数:3+7+19=29. Input 第一行两个整数:n , k (1<=n<=20,k&

递归入门 Java

对于强大的递归.要想做到灵活运用,是需要花时间进行练习并总结.往往递归学习的入门也是难度也比较大,常常会处于看得明,却写不出的"尴尬"情况. 递归的定义 将一个大的问题分解成比较小的.有着相同形式的问题. 递归是一种强有力的思想.在计算机科学的学习中,一个重要的必须学习的概念是递归.递归是一种编程策略,它把一个大的问题分解成具有相同形式的简单问题. 使用递归的必需条件 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式 存在一种简单情境,可以使递归在简单情境下退出 一般对递

5972: 【递归入门】全排列

题目描述 排列与组合是常用的数学方法. 先给一个正整数 ( 1 < = n < = 10 ) 例如n=3,所有组合,并且按字典序输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 输入 输入一个整数n(  1<=n<=10) 输出 输出所有全排列 每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格) 样例输入 3 样例输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 这是对昨天学习<算法竞赛入门经典>的复

【递归入门】组合的输出

题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数. 现要求你不用递归的方法输出所有组合. 例如n = 5 ,r = 3 ,所有组合为: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 输入 一行两个自然数n.r ( 1 < n < 21,1 < = r < = n ). 输出 所有的组

5978 Problem F 【递归入门】走迷宫

http://codeup.cn/problem.php?cid=100000608&pid=5 题目描述 有一个n*m格的迷宫(表示有n行.m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这n*m个数据和起始点.结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号).现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向.如果一条路都不可行,则输出相应信息(用-l表示无路).  请统一用 左上右下的顺序拓展,也就

递归入门引例

[一]两个最基本的例子 //阶乘 function fac(a:longint):longint; begin if a<2 then fac:=1 else fac:=a*fac(a-1); end; //费波那契数列 function fab(a:longint):longint; begin if a<=2 then fab:=1 else fac:=fab(a-2)+fab(a-1); end; [二]求各位数字之和 输入一个正整数N(0 <= N <= 214748364

c++ 递归入门 阶乘/数组求和

阶乘 int factorial(int num) { if (num == 1) { return 1; } return num * factorial(num - 1); } 数组求和 int arraySum(int* arr, int length, int index) { if (index == length) { return 0; } return arr[index] + arraySum(arr, length, index + 1); } 原文地址:https://ww

5974: 【递归入门】组合+判断素数

地址:http://codeup.cn/problem.php?id=5974 题目描述 已知 n 个整数b1,b2,…,bn 以及一个整数 k(k<n). 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34. 现在,要求你计算出和为素数共有多少种. 例如上例,只有一种的和为素数:3+7+19=29. 输入