看书到递归,递归太难了呀半天没做出来
c语言吧
全部回复
仅看楼主
level 2
Ypluto℃
楼主
看书到递归,递归太难了呀
半天没做出来
2020年01月26日 14点01分
1
吧务
level 14
GTA小鸡
void print(int n)
{
int i;
static int space = 0;
for (i=0; i<space; i++)
putchar(' ');
space++;
for (i=0; i<2*n-1; i++)
putchar('*');
putchar('\n');
if (n>1)
print(n-1);
}
2020年01月26日 15点01分
2
Ypluto℃
感谢
2020年01月27日 05点01分
Bubblºe
一次性函数?
调第二次开始结果就不一样了
2020年01月27日 06点01分
level 11
fx2422esplus
中间对齐?怕是没这么简单……
2020年01月26日 15点01分
3
level 11
fx2422esplus
我怀疑得新搞一个函数p2接受两个参数,一个是第一行开头的空格数,一个是n。然后print(n)就是p2(0,n)
2020年01月26日 15点01分
4
level 11
fx2422esplus
p2(m,n)输出完了第一行以后调用个p2(m+1,n-1)
2020年01月26日 15点01分
5
level 15
aaaaaaa421
2020年01月27日 06点01分
6
Bubblºe
第二次开始格式就往右边跑了
2020年01月27日 06点01分
aaaaaaa421
@Bubblºe
我测试并没有。见下面的图。
2020年01月27日 07点01分
Bubblºe
看错了
,没注意后面又减回去了
2020年01月27日 07点01分
level 14
Bubblºe
#include<stdio.h>
void print(int n)
{
static int k=0;
for(int i=0;i<k;i++)
printf(" ");
k++;
for(int i=0;i<n*2-1;i++)
printf("*");
printf("\n");
if(n==1)
{
k=0;
return;
}
print(n-1);
}
int main()
{
print(10);
print(9);
print(8);
return 0;
}
2020年01月27日 07点01分
7
level 15
aaaaaaa421
2020年01月27日 07点01分
8
level 5
scaride
#include <iostream>
const char Icon = '*';
const char Blank = ' ';
void pr(int n, char c) {
while (n-- > 0)
std::cout << c;
}
void print(int n) {
static int line = 0;
pr(line, Blank);
pr(n, Icon);
std::cout << '\n';
if (n >= 3) {
n -= 2; ++line;
print(n);
}
line = 0;
}
int main()
{
int lines;
std::cout << "输入行数: ";
while (std::cin >> lines && lines > 0) {
print(1 + 2 * (lines - 1));
std::cout << "输入行数(q退出): ";
}
system("pause");
return 0;
}
2020年01月27日 10点01分
9
level 5
啊~你干嘛
递归太简单了真的
2020年01月28日 09点01分
10
Ypluto℃
2020年01月28日 14点01分
level 5
霧銫黎明
2020年01月28日 17点01分
12
1