提取数字(num)

时间限制 : 1.000 sec  内存限制 : 128 MB
 
题目描述

给定一个字符串,请你提取出字符串中的所有数字,并且将每个数字加上 5 之后再求和。请注意:数字可能包含前导零,详见样例 2。保证所有数字之和在 long long 的范围内

输入

首先输入一个数字表示测试点编号(如果是 -1则表示是样例),然后输入一个长度不超过105 的字符串。

输出

输出一行一个整数表示答案。

样例输入 Copy
【样例 1 输入】
-1 aa5bb3cc2
【样例 2 输入】
-1 aa00321bb
样例输出 Copy
【样例 1 输出】
25
【样例2输出】
326
提示

【备注】
测试点编号 特殊性质
1 − 2 仅包含数字
3 − 6 不包含数字 0
7 − 8 仅包含一个字母
9 − 10 无特殊性质

daima如下

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    string s;
    cin>>s;
    long long sum=0;
    long long u=0;
    int p=0;
    s+='a';
    for(int i=0;i<=s.size()-1;i++)
    {
        if(s[i]>='0'&&s[i]<='9')
        {
            u=u*10+(s[i]-'0');
            p=1;
        }
        else
        {
            if(p==1)
            {
                sum=sum+u+5;
                u=0;
                p=0;
            }   
        }
    }
    cout<<sum<<endl;
    return 0;
}

### 将二进制字符串转换为数字数组 以下是 C++、Java 和 Python 的实现方法,用于将整数 `num=1010100` 中的每一位提取并存储到一个数组中。 #### C++ C++ 实现可以通过不断取模运算来获取最低位,并将其存入向量容器中[^1]: ```cpp #include <iostream> #include <vector> std::vector<int> binaryToDigits(int num) { std::vector<int> digits; while (num > 0) { digits.insert(digits.begin(), num % 10); // 插入当前最低位 num /= 10; // 移除最低位 } return digits; } int main() { int num = 1010100; std::vector<int> result = binaryToDigits(num); for (auto digit : result) { std::cout << digit << " "; } return 0; } ``` 上述代码通过循环操作逐步取每位数值,并逆序插入至向量头部完成构建[^1]。 --- #### Java 在 Java 中可以利用字符数组特性逐一分解原数字中的各位置数据[^2]: ```java public class BinaryToDigits { public static int[] convertBinaryToIntArray(long number) { String strNum = Long.toString(number); int length = strNum.length(); int[] array = new int[length]; for (int i = 0; i < length; ++i){ char ch = strNum.charAt(i); array[i] = Character.getNumericValue(ch); } return array; } public static void main(String[] args) { long num = 1010100L; int[] result = convertBinaryToIntArray(num); System.out.print("["); for (int j = 0; j < result.length; j++) { System.out.print(result[j]); if(j != result.length -1 ) {System.out.print(",");} } System.out.println("]"); } } ``` 此段程序先转成字符串形式再逐一解析其组成成分形成最终目标列表[^2]. --- #### Python Python 提供简洁的方式处理此类问题, 可直接基于字符串切片功能快速达成目的: ```python def binary_to_digits(num): return [int(digit) for digit in str(num)] if __name__ == "__main__": num = 1010100 result = binary_to_digits(num) print(result) ``` 这里采用列表推导式配合内置函数轻松实现了相同效果[^3]. ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值