首先这个程序的复杂读为0(N),其次根据复杂度画出递归树。然后可以肯定和这个程序的功能完全一样。过程就是这样理解的。
#include "stdio.h"
void print1(int) ;
void print2(int) ;
void print3(int) ;
void print4(int) ;
void print1(int w) {
if(w) {
for(int i = 1 ; i <=w ;i++)
printf("\t%d" , w) ;
printf("\n") ;
}
}
void print2(int w) {
print1(w-1) ;
if(w) {
for(int i = 1 ; i <=w ;i++)
printf("\t%d" , w) ;
printf("\n") ;
}
}
void print3(int w) {
print2(w-1) ;
if(w) {
for(int i = 1 ; i <=w ;i++)
printf("\t%d" , w) ;
printf("\n") ;
}
}
void print4(int w) {
print3(w-1) ;
if(w) {
for(int i = 1 ; i <=w ;i++)
printf("\t%d" , w) ;
printf("\n") ;
}
}
int main()
{
print4(4);
}
[
本帖最后由 iFreeBSD 于 2009-12-22 20:04 编辑 ]