7332 读出数字

题目描述 Description

给出一个整数,整数的位数不超过九位,按照下列读法读出这个整数,如果这个数是负数,要先输出Fu。例如,-314159265 读作:Fu san Yi yi Qian si Bai yi Shi wu Wan jiu Qian er Bai liu Shi wu。注意:对于数字中出现的0,要正确的读出。例如,100700 读作:yi Shi Wan ling qi Bai。

输入描述 Input Description

一行,一个不超过9位的整数

输出描述 Output Description

输出一行,按照要求输出,字符之间用空格隔开,行尾不能有多余的空格。

样例输入 Sample Input

样例输入1: -314159265 样例输入2: 100700

样例输出 Sample Output

样例输出1: Fu san Yi yi Qian si Bai yi Shi wu Wan jiu Qian er Bai liu Shi wu 样例输出2: yi Shi Wan ling qi Bai

#include<bits/stdc++.h>
using namespace std;
string dan[]={"Ge","Shi","Bai","Qian","Wan","Yi"};
string Num[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string convertNum(string str){
    string ans;
    if(str[0]=='0'){
        return "ling";
    }
    if(str[0]=='-'){
        ans="Fu ";
        str.erase(0,1);
    }
    int len=str.length();
    int i=0;
    while(len){
        int zeroCnt=0;
        bool zero=false;
        for(int j=(len-1)%4;j>=0;j--){
            int pos=str.length()-len;
            int num=str[pos]-'0';
            if(num>0){
                if(zero){
                    ans+="ling ";
                    zero=false;
                }
                ans+=Num[num]+' ';
                if(j!=0) ans+=dan[j]+' ';
            }else{
                zeroCnt++;
                zero=true;
            }
            len--;
        }
        if(len/4>0&&zeroCnt!=4) ans+=dan[3+len/4]+' ';
    }
    ans.pop_back();
    return ans;
}
int main(){
string str;
cin>>str;
str=convertNum(str);
cout<<str;
return 0;
}

如果Excel表格中存在多行数字和多行汉字交叉的情况,可以使用Pandas库中的read_excel()函数进行读取。默认情况下,Pandas会将所有数字读取为浮点数,将所有文本读取为字符串。 例如,如果我们有以下的Excel表格: | 列1 | 列2 | 列3 | | --- | --- | --- | | 1 | A | 2 | | B | 2 | C | | 3 | D | 4 | 我们可以使用如下代码读取: ```python import pandas as pd df = pd.read_excel('data.xlsx') print(df) ``` 输出结果为: ``` 列1 列2 列3 0 1 A 2 1 B 2 C 2 3 D 4 ``` 可以看到,Pandas将所有数字读取为浮点数,将所有文本读取为字符串。 如果我们需要将数字和文本分别读取出来,可以使用Pandas库中的converters参数来自定义转换函数。例如,我们可以编写一个函数,将所有非数字字符替换为空字符串,然后将结果转换为浮点数: ```python import pandas as pd def clean_number(x): if isinstance(x, str): x = x.replace(',', '') # 去掉逗号分隔符 x = ''.join(filter(str.isdigit, x)) # 只保留数字 return float(x) if x else None df = pd.read_excel('data.xlsx', converters={'列1': clean_number, '列3': clean_number}) print(df) ``` 输出结果为: ``` 列1 列2 列3 0 1.0 A 2.0 1 NaN 2 NaN 2 3.0 D 4.0 ``` 以上代码中,我们使用了isinstance()函数来判断单元格中的值是否为字符串类型,然后使用replace()函数和filter()函数来去掉逗号分隔符和非数字字符。最后,我们将结果转换为浮点数并返回。在read_excel()函数中,我们使用了converters参数来指定需要使用的转换函数,其中'列1'和'列3'是需要处理的列的名称。这样,就可以将数字和文本分别读取出来了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值