实现将一个数的每一位进行求和

在这里插入图片描述

求将一个数每一位的数字和

对于这个题,我们还是需要运用递归的方式来进行

思路:

1.当这个数小于10的时候,我们就不需要在进行递归,直接输出就行,
2.故我们需要在这个地方用一个if语句进行筛选,
3.在大于9的情况下再进行递归.并且再次进行循环的时候要/10,这样就能自动切换到下一位.

如下面例题:

int DigitSum(int n){                         //自定义函数
	if (n > 9)
		return DigitSum(n / 10) + n % 10;	 //进行递归并将原来数除10使它的余数缩小到下一位
	else return n;							 //当到达最高位则输出
}


int main(){
	int i = 0;
	printf("please enter a number:\n");
	scanf("%d",&i);
	int ret=DigitSum(i);					 //调用函数
	printf("This number is %d\n",ret);
	system("pause");
	return 0;
}

对于这个题目,我们主要要能联想到将一个值缩小十倍的话,与10计算它的余数,得到的数就是我们想要的这个数位上的数字.多看看代码,理解理解思路即可!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值