IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> PAT (Basic Level) Practice (中文) 1002 写出这个数 (20 分)满分 |代码量少:10行左右 -> 正文阅读

[开发测试]PAT (Basic Level) Practice (中文) 1002 写出这个数 (20 分)满分 |代码量少:10行左右

PAT (Basic Level) Practice (中文)

1002 写出这个数 (20 分)

题目简介

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100 。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789 结尾无空行

输出样例:

yi san wu 结尾无空行

.
读完题就知道,只需要输出 “输入数字的每一位的和”的每一位的拼音
.
例如:n = 123
我们知道和是:sum = 6
输出:liu
注意:输出的最后一位无空格

思路

  1. 输入
    因为输入的数据非常大,无论用long long或是int类的都会超出范围,所以用char*或者string来 接收 n
  2. 提取每一位,用 a[i]-48 就可以把char转int了,并且用一个int sum来存结果
  3. 用一个string数组来存放拼音,(也可以用switch case分支来实现 )
  4. 将sum转成string类后,遍历每一位,而每一位的数字恰好就是拼音数组对应的下标

代码实现

**在这里插入图片描述**

char数组(19分)

#include <iostream>
#include <string>
using namespace std;
string res[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char a[110];
int b[110];
int main(){
    int i=0,sum=0,j=0,cnt=0;
    do{
        char ch=getchar();
        if(ch=='\n') break;
        a[i++]=ch;
    }while(1);
    for(int k=0;k<i;k++){
        sum+=a[k]-48;
    }
    do{
        b[j++]=sum%10;
        cnt++;
    }while(sum/=10);
    for(int k=cnt-1;k>=0;k--){
        if(b[k]!=0){
            if(b[k-1]!=0)
            cout<<res[b[k]]<<" ";
            else
            cout<<res[b[k]];
        }
    }
}
//测试数据
//1234567890987654321123456789

string(20分满分)

#include <iostream>
#include <string>
using namespace std;
string res[11]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string a,b;
int sum=0;
int main(){
    cin>>a;
    for(int i=0;i<a.length();i++){
        sum+=a[i]-48;
    }
    b = to_string(sum);
    for(int i=0;i<b.length();i++){
        cout<<res[b[i]-48];
        if(i+1!=b.length()) cout<<" ";
    }
}

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:30:46  更:2021-08-25 12:32:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:31:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码