c - 打印从 N 到 1 再从 1 到 N 的所有整数的递归函数
问题描述
我只是想问一下,考虑到 N 是由用户给出的,我如何使用 step -+2 和递归函数显示从 N 到 1 再到 N 的所有整数。例如,如果用户给出 7,则调用该函数将打印 <<7 5 3 1 3 5 7>> 或者如果参数为 8,它将打印 <<8 6 4 2 4 6 8>> 我只有想办法显示 N 到 1(或 N 到 2)。这是我的代码:
int main()
{
int a;
printf("Give a:");
scanf("%d", &a);
func(a);
return 0;
}
int func(int n)
{
printf("\t%d",n);
if (n==1 || n==2)
{
return 1;
}
return func(n-2);
}
解决方案
显然,我必须假设其他人都不是。要么就是这样,要么他们只是喜欢迟钝的代码。
void func(int n)
{
if (n > 2)
{
printf("%d ", n);
f(n-2);
}
printf("%d ", n);
}
应该是所有需要的。下面的实时示例
代码
#include <stdio.h>
void f(int n)
{
if (n > 2)
{
printf("%d ", n);
f(n-2);
}
printf("%d ", n);
}
int main()
{
for (int i=0; i<=10; ++i)
{
f(i);
fputc('\n', stdout);
}
}
输出
0
1
2
3 1 3
4 2 4
5 3 1 3 5
6 4 2 4 6
7 5 3 1 3 5 7
8 6 4 2 4 6 8
9 7 5 3 1 3 5 7 9
10 8 6 4 2 4 6 8 10
推荐阅读
- tarantool - 如果我有两个,如何转移特定的辅助密钥?
- macos - 如何在 macOS 上停止\关闭\杀死 tcp 连接
- python - Pandas 结合了两种不同长度的时间序列数据框
- nopcommerce - 我想允许正斜杠进入 SENAME
- ios - firebase 检索用户 ID 以在 url API 调用中传递它
- r - Bookdown 演示文稿中类似 Beamer 的叠加层
- ubuntu-20.04 - 在内核 5.4.0-48-generic 上启动 ubuntu 20.04 时出现问题
- c - char *str 声明后不定义,它分配多少内存?
- flutter - FAILURE:构建失败并出现异常。颤振.gradle'行:904
- c++ - 如何在二维向量中打印所有 8 个邻居(分段错误)