17.P153课后习题6-12
设计输出如下形式数值的算法。
1
2 2
3 3 3
…
n n n … n
要求
(1)把算法设计成递归结构的算法;
(2)画出上述递归算法的调用执行过程;
(3)把算法设计成循环结构。
(1)把算法设计成递归结构的算法:
#include<stdio.h>
void Display_Rec1(int n)
{
int i;
if (n > 1)
Display_Rec1(n - 1);
for (i = 1; i <= n; i++)
printf("%d\t", n);
printf("\n");
}
void Display_Rec2(int m, int n)
{
int i;
for (i = 1; i <= m; i++)
printf("%d\t", m);
printf("\n");
if (m < n)
Display_Rec2(++m, n);
}
int main()
{
printf("递归解法1:\n");
Display_Rec1(5);
printf("递归解法2:\n");
Display_Rec2(1, 5);
return 0;
}
(2)画出上述递归算法的调用执行过程:
略
(3)把算法设计成循环结构:
#include<stdio.h>
void Display_Ite(int n)
{
int i, j;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
printf("%d\t", i);
printf("\n");
}
}
int main()
{
printf("循环(迭代)解法:\n");
Display_Ite(5);
return 0;
}