1 #include<stdio.h> 2 void PP(int n) 3 { 4 if(n==0) return; 5 PP(n/10); 6 printf("%d",n%10); 7 } 8 void NP(int n) 9 { 10 if(n==0) return; 11 printf("%d",n%10); 12 PP(n/10); 13 } 14 int Ad(int n) 15 { 16 if(n==0) return 0; 17 if(n==1) return 1; 18 return Ad(n-1)+n; 19 } 20 int main() 21 { 22 int n; 23 scanf("%d",&n); 24 printf("%d ",Ad(n)); 25 PP(n); 26 printf(" "); 27 NP(n); 28 return 0; 29 }
PP是正序,NP是逆序,Ad是数列和。
PP和NP的区别在于,由于越往深处n%10就是越高位的,所以PP先进入最底层,再输出,NP先输出,再进入深层调用。
Ad注意+n不是+1,不然最后就输出原数的。(想一想,为什么?)