★写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和。
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。
#include<stdio.h> #include<stdlib.h> int Digitsum(unsigned int num) { int sum = 0, n = num, m = 0; if (n) { m = n % 10; //用以求得每一位的数字 n = n / 10; //用以不断缩小位数直至获得最高位,同时也是递归调用的边界条件 sum=m+Digitsum(n); //递归调用,直至n的值为0时不再循环调用 } return sum; //依次返回各个位的相加的和 } int main() { unsigned int num = 0; printf("请输入一个非负整数:"); scanf("%d",&num); int ret=Digitsum(num); printf("%d\n",ret); system("pause"); return 0; }
本文出自 “温暖的微笑” 博客,请务必保留此出处http://10738469.blog.51cto.com/10728469/1710724
原文地址:http://10738469.blog.51cto.com/10728469/1710724