编写一个函数实现n^k,使用递归实现
#include<stdio.h> int for_fun(int n,int k) { int ret = 1; while(k) { ret *= n; k--; } return ret; }//非递归 int ret_fun(int n,int k) { int ret = 0; if(0 == k) return 1; else { k--; ret = n * ret_fun(n,k); return ret; } }//递归 int main() { printf("%d\n",for_fun(2,8)); printf("%d\n",ret_fun(2,8)); return 0; }
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
#include<stdio.h> int for_Digitsum(int n) { int ret = 0; while(n) { ret += n % 10; n = n / 10; } return ret; }//非递归 int ret_Digitsum(int n) { if(n) return (ret_Digitsum(n/10) +n%10); else return 0; }//递归 int main() { printf("%d\n",for_Digitsum(1729)); printf("%d\n",ret_Digitsum(1729)); return 0; }
原文地址:http://blog.csdn.net/cherry_ermao/article/details/44243301