每天一道C语言精选编程题之求数字的每⼀位之和

题目描述

输⼊⼀个整数m,求这个整数m的每⼀位之和,并printf

解法思路

我们可以通过不断获取该整数的个位数,然后将该位数从整数中删除,重复这个过程直到整数为0,依次求得每个位数的值,并将它们相加,即可得到整数的每⼀位之和。

  1. ⾸先,我们可以使⽤⼀个变量 sum 来记录每⼀位的和,初始值为0。然后,我们可以使⽤循环来不断地取出整数m的最后⼀位,并将其加⼊到 sum 中,直到m变为0。

  2. 在每次循环中,我们可以通过取模运算( % )和整除运算( / )来获取m的最后⼀位和去掉最后⼀位的新值。具体来说,我们可以使⽤ m % 10 来获取m的最后⼀位数字,⽽通过 m / 10 可以获取去掉最后⼀位后的新值。

  3. 当m变为0时,整个求和过程结束,此时 sum 中存储的就是整数m的每⼀位之和。最后,我们可以输出 sum 的值即可。

解法代码

cs 复制代码
#include <stdio.h>
int digit_sum(int m)
{
	//定义变量记录每⼀位的和
	int s = 0;
	//当前数还不为0,获取其个位数加到s中
	while (m)
	{
		s += m % 10;
		//删除其个位数
		m /= 10;
	}
	//返回每⼀位的和
	return s;
}
int main()
{
	int m = 0;
	//输⼊整数
	scanf("%d", &m);
	//获取每⼀位的和
	int ret = digit_sum(m);
	printf("%d\n", ret);
	return 0;
}

运行结果

输入:123

输出:6

相关推荐
sel_99 分钟前
【强化学习】Hands-on Modern RL项目实践|OPD 算法完整解析
人工智能·深度学习·算法·机器学习·语言模型
ly768930 分钟前
JavaScript 从入门到进阶:核心语法、异步编程与工程化实践
开发语言·javascript·ecmascript
Navigator_Z1 小时前
LeetCode //C - 1209. Remove All Adjacent Duplicates in String II
c语言·算法·leetcode
落魄大学生之流水线上谋生计1 小时前
Java锁全面指南:从基础概念到企业级应用
java·开发语言
for_ever_love__1 小时前
python基础语法学习: 闭包
开发语言·python·学习·闭包
ly76891 小时前
Python 全面入门:从核心语法到工程实践
开发语言·python
艾伦_耶格宇2 小时前
【AI】-4 OpenCode Go 接入 Obsidian 完整指南
运维·开发语言·人工智能·agent·opencode
旋生万物3 小时前
【终极实战】用Python从零“生成“一个宇宙:螺旋干涉模型的代码实现
开发语言·前端·人工智能·react.js·php·wpf
ShineWinsu3 小时前
对于 C++:C++14中从变量模板、泛型 Lambda 到并发与字面量的解析
c++·算法