C语言求输入一个非负整数,返回组成它的数字之和
方法一、递归法
思路:设计一个初始条件,通过递归获取非负整数的个位,不断接近递归条件即可。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int DigitSum(int n)
{int tmp = 0;if (n > 9){tmp = n % 10;return tmp + DigitSum(n / 10);}else if(n == 0 ){return 0;}
}int main()
{int n = 0;scanf("%d",&n);int ret = DigitSum(n);printf("%d",ret);return 0;
}
非递归法
思路:通过循环设计好结束条件不断获得个位,并使用一个临时值接收。最后返回临时值即可。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int DigitSum(int n)
{int tmp = 0;while (n){tmp += n % 10;n /= 10;}return tmp;
}int main()
{int n = 0;scanf("%d",&n);int ret = DigitSum(n);printf("%d",ret);return 0;
}