东方博宜1659 - 是否含有数字5

问题描述

请从键盘读入一个五位整数 n,判断其是否含有数字 5,如果含有数字 5 ,请输出这个 5 位数各个位的和;如果不含数字 5 ,请直接输出这个 5 位数。
比如:输入:12345,就是含有数字 5 ,因此输出 15(1+2+3+4+5=15)。
再比如:输入:12188 ,就不含数字 5,那么直接输出 12188 。

输入

一个五位正整数 n 。

输出

输出一个整数,代表按要求计算的结果。

样例

输入

12345

输出

15

实现

要解决这个问题,我们需要逐步进行以下步骤:

  1. 从键盘读入一个五位整数 n
  2. 判断这个整数是否含有数字 5。
  3. 如果含有数字 5,计算并输出这个五位数各个位的和。
  4. 如果不含数字 5,直接输出这个五位数。

我们可以通过以下步骤实现:

  1. 将整数 n 转换为字符串,以便逐位检查。
  2. 遍历字符串的每一位,检查是否包含数字 5。
  3. 如果包含数字 5,计算各个位的和并输出。
  4. 如果不包含数字 5,直接输出原数。

下面是实现这个逻辑的 C++ 代码:

#include <iostream>
#include <string>

int main() {
    int n;
    std::cin >> n;

    // 将整数转换为字符串
    std::string str = std::to_string(n);

    // 检查是否含有数字 5
    bool containsFive = false;
    int sum = 0;
    for (char c : str) {
        if (c == '5') {
            containsFive = true;
        }
        sum += c - '0'; // 将字符转换为数字并累加
    }

    if (containsFive) {
        std::cout << sum << std::endl;
    } else {
        std::cout << n << std::endl;
    }

    return 0;
}

代码解释

  1. 输入读取

    int n;
    std::cin >> n;
    

从标准输入读取一个整数 n

        2.转换为字符串

std::string str = std::to_string(n);

 将整数 n 转换为字符串 str,以便逐位检查。

        3.检查是否含有数字 5

bool containsFive = false;
int sum = 0;
for (char c : str) {
    if (c == '5') {
        containsFive = true;
    }
    sum += c - '0'; // 将字符转换为数字并累加
}

遍历字符串 str 的每一位,检查是否包含字符 '5'。同时计算各个位的和。

        4.输出结果

if (containsFive) {
    std::cout << sum << std::endl;
} else {
    std::cout << n << std::endl;
}

如果包含数字 5,输出各个位的和;否则,输出原数 n

样例测试

  • 输入:12345
    • 包含数字 5,输出各个位的和:15
  • 输入:12188
    • 不包含数字 5,输出原数:12188

通过上述代码和解释,我们可以正确地解决这个问题。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值