1 条题解

  • 0
    @ 2025-10-30 13:56:15

    思路分析

    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; → 检查是否为5
    • c+=w; → 累加各位数字
    • n/=10; → 删除个位数
    • if(mark) cout<<c; else cout<<nn; → 根据标记选择输出
    • 1

    信息

    ID
    722
    时间
    1000ms
    内存
    16MiB
    难度
    4
    标签
    (无)
    递交数
    774
    已通过
    331
    上传者