1 条题解
-
0
思路分析
1. 任务拆解:
- 读取五位整数n
- 判断是否含有数字5
- 如果含有5,输出各位数字之和
- 如果不含5,直接输出原数
2. 关键点分析:
- 需要保存原始数字nn,因为n在循环中会被修改
- 使用标记变量mark记录是否遇到数字5
- 循环中同时计算各位数字之和
- 根据mark的值决定输出内容
3. 步骤规划:
- 读取n的值并保存副本nn
- 初始化总和c=0,标记mark=0
- 循环处理每一位数字:
- 获取个位数字w
- 如果w等于5,设置mark=1
- 累加w到总和c
- 删除个位数
- 根据mark值选择输出总和或原数
4. 代码对应:
int n,nn,w,c=0,mark=0; cin>>n; nn=n;→ 读取整数并保存副本while(n)→ 循环处理每一位w=n%10;→ 获取个位数字if(w==5) mark=1;→ 检查是否为5c+=w;→ 累加各位数字n/=10;→ 删除个位数if(mark) cout<<c; else cout<<nn;→ 根据标记选择输出
- 1
信息
- ID
- 722
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 774
- 已通过
- 331
- 上传者