通过使用递归功能
Function by using Recursion?
我想制作一个函数,该函数将显示从1到100到1的数字我感到困惑的是,如何使用递归可以做到这一点?
我不想使用任何其他循环进行此操作。请给我提示,而忽略我的询问方式,因为我是C 和C#。
void Print100(int n)
{
if (n > 100)
{
Console.WriteLine(); // cosmetic
return; // stop recursing
}
Console.WriteLine(n); // 1-100
Print100(n+1); // recurse
Console.WriteLine(n); // 100-1, on the way out
}
void Main()
{
Print100(1);
}
用于打印数字从1到100
private void number(int n)
{
if (n == 100)
return;
Response.Write(n + "<br/>");
number(n + 1);
}
呼叫:
number(0);
您可以为:
做递归public static void For<T>(
T initializer,
Func<T, bool> condition,
Func<T, T> iterator,
Action<T> action)
{
if (!condition(initializer)) return;
action(initializer);
For(iterator(initializer), condition, iterator, action);
}
一到一百:
For(1, i => i <= 100, i => i + 1, i => Console.WriteLine(i));
左右为练习。
您编写一个函数,该函数基本上是两个参数:当前数字和方向(向上或向下)。然后,您输出该数字,增加或减少它,然后再次调用相同的功能,直到您达到0。
您可以在C 中使用此功能:
void printNumbers(int number)
{
if (i >= 1)
{
// 100 --> 1
cout << number << " ";
printNumbers(i-1);
// 1 --> 100
cout << number << " ";
}
}
使用PrintNumbers(100)
调用您的功能希望这会有所帮助!
c#
public void recurseInts( int start, int finish ){
if( start > finish ) return;
Console.WriteLine(start);
Console.WriteLine(finish - start);
recurseInts(start + 1 , finish);
}
recurseInts(0,100);
我认为这就是您想要的C
#include <iostream>
using namespace std;
void recur(int start, int end,bool asc){
cout << start << endl;
if(!asc && start==0)return;
if(start == end) asc = false;
asc?start++:start--;
recur(start, end, asc);
}
int main(){
recur(0, 100,true);
system("pause");
return 0;
}
复制此代码并提交您的作业:
class Program
{
public static bool forward = false;
public static bool stop = false;
static void Main(string[] args)
{
PrintNumbers(0);
Console.ReadLine();
}
private static void PrintNumbers(int i)
{
if (i <= 100 && !forward)
{
Console.WriteLine(i);
if (i == 100)
{
forward = true;
}
PrintNumbers(i + 1);
}
if (i >= 0 && i < 100 && forward && !stop)
{
Console.WriteLine(i);
PrintNumbers(i - 1);
if (i==0)
{
stop = true;
}
}
}
}
相关文章:
- 通过递归进行因子分解
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- 编写一个递归功能,该功能采用数组并以相反顺序显示元素,而无需在末尾启动数组的索引
- 无全局变量或功能参数的递归调用
- 在递归功能中,我如何跳到堆栈上的其他功能调用
- ConstexPR模板功能的无限递归
- 在1个功能中打印相反的三角递归C
- 简单的二进制搜索树非递归添加功能
- C :重复的变化的递归功能,按不同字母数量排序
- 递归功能,以打印每个新位置以进行控制
- 避免此功能的递归
- 编译器无法在循环递归参考中找到功能
- 关于C (初学者级别)中的递归功能
- 通过递归模板中的参考传递模板功能
- 将这个糟糕但功能强大的代码转换为递归函数
- 用于列出子目录中所有文件的递归功能
- 编译时间递归函数以计算两个整数的下一个功能
- 通过使用递归功能
- 霍夫曼编码器-递归,编码功能失败