PAT 1005 Spell It Right

2023-05-16

Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.

Input Specification:

Each input file contains one test case. Each case occupies one line which contains an N (≤10100).

Output Specification:

For each test case, output in one line the digits of the sum in English words. There must be one space between two consecutive words, but no extra space at the end of a line.

Sample Input:

12345

Sample Output:

one five

给定一个非负整数N,你的任务是计算N的所有数字之和,并输出每个数字之和的每个数字对应的英文单词。

输入格式: 每个输入文件包含一个测试用例。每个测试用例占用一行,包含一个N(≤10 100 )。

输出格式: 对于每个测试用例,在一行中输出数字之和的每个数字对应的英文单词。每两个连续的单词之间必须有一个空格,但是在行末不能有多余的空格。

样例输入: 12345 样例输出: one five

#include <stdio.h>
#include <string.h>

int main() {
    char n[1010];
    int i, len, sum = 0;
    char* digits[10] = {"zero", "one", "two", "three", "four", 
                        "five", "six", "seven", "eight", "nine"};
    fgets(n, 1010, stdin);
    len = strlen(n);
    if (n[len-1] == '\n') n[len-1] = '\0'; // 去掉fgets函数读入的换行符
    len = strlen(n);
    for (i = 0; i < len; i++) {
        sum += n[i] - '0';
    }
    if (sum == 0) {
        printf("%s", digits[0]);
    } else {
        int digits_sum[10];
        int digits_count = 0;
        while (sum > 0) {
            digits_sum[digits_count] = sum % 10;
            digits_count++;
            sum /= 10;
        }
        for (i = digits_count - 1; i >= 0; i--) {
            printf("%s", digits[digits_sum[i]]);
            if (i > 0) printf(" ");
        }
    }
    return 0;
}

 

这段代码实现了一个计算树中每一层无子节点的家庭成员个数的程序。它首先读入树的结构(包括节点数n、非叶节点数m和每个非叶节点的孩子节点列表),然后用深度优先搜索遍历整棵树,统计每一层无子节点的家庭成员个数,最后将结果输出。

具体实现时,首先定义了两个数组count和tree,其中count数组用来记录每一层无子节点的家庭成员个数,tree数组用来记录树的结构。然后在读入树的结构之后,首先将根节点的count值设为1(因为根节点算一个),然后从根节点开始进行深度优先搜索,遍历每一个节点,并判断每一个子节点是否有孩子节点。如果没有孩子节点,则将其所在层数的count值加1。最后将count数组中的所有值输出即可。

该程序的时间复杂度为O(n+m),其中n为节点数,m为非叶节点数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PAT 1005 Spell It Right 的相关文章

  • 【PAT(Advanced Level) Practice】1010 Radix(二分)

    链接 xff1a https pintia cn problem sets 994805342720868352 problems 994805507225665536 题意 xff1a 有两个数 N 1 xff0c N 2
  • Python3二分查找库函数bisect(), bisect_left()和bisect_right()介绍

    前提 xff1a 列表有序 xff01 xff01 xff01 bisect 和bisect right 等同 xff0c 那下面就介绍bisect left 和bisec right 的区别 xff01 用法 xff1a index1 s
  • 肿瘤诊断(PAT)

    题目链接 https www patest cn contests gplt L3 004 一道很裸的bfs 一开始以为会超时 抱着试一试的心态交了一发竟然过了 include
  • 7-10 链表去重(25 分)

    给定一个带整数键值的链表 L 你需要把其中绝对值重复的键值结点删掉 即对每个键值 K 只有第一个绝对值等于 K 的结点被保留 同时 所有被删除的结点须被保存在另一个链表上 例如给定 L 为 21 15 15 7 15 你需要输出去重后的链表
  • PAT BASIC LEVEL 1054. 求平均值 (20)

    1054 求平均值 20 本题的基本要求非常简单 给定N个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后2位 当你计算平均值的时候 不能把那些非法的
  • L1-040. 最佳情侣身高差

    专家通过多组情侣研究数据发现 最佳的情侣身高差遵循着一个公式 女方的身高 1 09 男方的身高 如果符合 你俩的身高差不管是牵手 拥抱 接吻 都是最和谐的差度 下面就请你写个程序 为任意一位用户计算他 她的情侣的最佳身高 输入格式 输入第一
  • 交换机与路由器技术-35-端口多路复用PAT

    目录 一 端口多路复用 PAT 1 1 概述 1 2 端口映射 服务器映射 1 3 配置端口多路复用 1 3 1 方式一 使用单独的公网IP 第一步 定义内网和外网接口 第二步 定义内网地址范围 外网地址 1 使用ACL 允许某个范围的内网
  • 1031. 查验身份证(15)

    一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 然后将计算的和对11取模得到值Z 最
  • pta 一元多项式的乘法与加法运算

    7 2 一元多项式的乘法与加法运算 20 分 设计函数分别求两个一元多项式的乘积与和 输入格式 输入分2行 每行分别先给出多项式非零项的个数 再以指数递降方式输入一个多项式非零项系数和指数 绝对值均为不超过1000的整数 数字间以空格分隔
  • 1014 Waiting in Line (30)

    题目描述 Suppose a bank has N windows open for service There is a yellow line in front of the windows which devides the wait
  • 【PAT甲级A1125】 Chain the Ropes (25分)(c++)

    1125 Chain the Ropes 25分 作者 CHEN Yue 单位 浙江大学 代码长度限制 16 KB 时间限制 200 ms 内存限制 64 MB Given some segments of rope you are sup
  • PAT B1016 部分A+B (15 分)(C语言实现)

    PAT B1016 部分A B 15 分 C语言实现 问题描述 正整数 A 的 D A 为 1 位整数 部分 定义为由 A 中所有 D A 组成的新整数 P A 例如 给定 A 3862767 D A 6 则 A 的 6 部分 P A 是
  • PAT A1123 2019.09.05 【AVL建树 层序判断完全二叉树】

    1123 Is It a Complete AVL Tree 30 分 An AVL tree is a self balancing binary search tree In an AVL tree the heights of the
  • 【PAT甲级】1074 Reversing Linked List (25 point(s))

    Given a constant K K K and a singly linked list L L L you are supposed to reverse the links of every
  • 1054 求平均值 (20 分)

    1054 求平均值 20 20 分 本题的基本要求非常简单 给定N个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后2位 当你计算平均值的时候 不能把
  • 1001 害死人不偿命的(3n+1)猜想 (15 分)

    1001 害死人不偿命的 3n 1 猜想 15 分 卡拉兹 Callatz 猜想 对任何一个正整数 n 如果它是偶数 那么把它砍掉一半 如果它是奇数 那么把 3n 1 砍掉一半 这样一直反复砍下去 最后一定在某一步得到 n 1 卡拉兹在 1
  • PAT甲级刷题:模拟(不断更新)

    目录 1001 A B Format 1005 Spell It Right 1035 Password 1061 Dating 18 20 1073 Scientific Notation 16 20 1077 Kuchiguse 17
  • 【PAT乙级】锤子剪刀布

    题目描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5 即双方交锋的次数 随
  • 8-0. 查找整数(10)

    本题要求从输入的N个整数中查找给定的X 如果找到 输出X的位置 从0开始数 如果没有找到 输出 Not Found 输入格式 输入在第1行中给出2个正整数N lt 20 和X 第2行给出N个整数 数字均不超过长整型 其间以空格分隔 输出格式
  • 1051. 复数乘法 (15)

    复数可以写成 A Bi 的常规形式 其中A是实部 B是虚部 i是虚数单位 满足i2 1 也可以写成极坐标下的指数形式 R e Pi 其中R是复数模 P是辐角 i是虚数单位 其等价于三角形式 R cos P isin P 现给定两个复数的R和

随机推荐

  • C++之AStar寻路算法

    仅以记录 有一种算法 名为AStar 它的作用是求图中两点之间的最短路径 沉迷 该算法的我 自己编写了一个版本 注释虽少 但求传神 代码虽 恶心 但求理解 include lt iostream gt include lt vector g
  • 使用livox_viewer2对激光雷达livox_mid360进行调试

    准备 系统 windows10 硬件 xff1a livox mid360 软件 xff1a livox viewer2 测试 连接号激光雷达设备 xff0c 电脑ip相关设置和livox avia一样 livox系列激光雷达ip设置都是一
  • 听说你还不会制作“GIF动图”,手把手包教会,这不就来了吗

    近期 xff0c 看了好多写的博客 xff0c xff08 不管是前端HTML的还是后端Java的 xff0c 前端制作的3D部分的效果图需要展示动图 xff09 发现有点还存在想使用动图 xff0c 但是不会制作 xff0c 又或者是制作
  • HTML+js实现贪吃蛇小游戏(内含完整代码)

    案例分析 看图拆解游戏 首先我们根据图片上的内容把这个游戏拆解成几个部分去单独看 xff1a 最外面的大盒子包裹着内容加边框限制蛇的活动范围 xff0c 整个范围可以看成由许多小方格排列构成的 xff0c 例如这样子的 xff1a xff1
  • 【华为Hilink SDK Linux系统开发】第三章:华为hilink SDK Linux系统网关适配

    mark xff1a https blog csdn net qq 24550925 article details 107282773 关注嘉友创科技公众号 声明 xff1a 文章只做技术交流 xff0c 没有其他任何用途 xff0c 侵
  • 快速去除GIF动图的背景(让背景变透明),保姆级教程

    很多小伙伴在看到好看的动图效果时 xff0c 想用在自己的页面上 xff0c 可是常常会碰到一些动图背景颜色不符合自己的需求 xff0c 所以会产生修改动图背景的想法 xff0c 但是GIF动图终究是GIF动图 xff0c 不像静态图片那样
  • Vue在HTML中如何使用

    x1f440 Vue是什么 一套用于构建用户界面的渐进式JavaScript框架 构建用户界面 xff1a 数据变成界面渐进式 xff1a Vue可以自底向上逐层的应用 x1f440 Vue如何使用 一 引入vue js lt script
  • 简单记录一下怎么看package.json文件

    首先每个vue工程文件从仓库克隆代码下来的时候 xff0c 一般都会包含这个文件 xff0c 这个文件非常重要 xff0c package json包含了关于项目重要信息 xff0c 如下图所示 其中包含了name version desc
  • 项目中常用到的前端vue根据后端接口返回文件地址实现在线预览和下载功能

    简简单单的记录一下项目中做过的东西 项目中时常会有要求查看附件 xff0c 附件的下载的要求 xff0c 在这里简单记录一下前端vue根据后端接口返回文件地址实现在线预览和下载功能 x1f440 文件在线预览 目前我这里使用的是点击a链接跳
  • 记录面试问题

    以下问题不分先后 xff0c 按照印象深浅排序 xff0c 可能一次记录不完成 xff0c 后面想起来会及时补充 xff0c 如有不对 xff0c 恳请各位围观大佬多多指教 x1f64f 印象最深的是一道很简单很简单的题目 xff0c 我结
  • C++中“.“,“->“,“:“和“::“的区别

    在 C 43 43 中 xff0c 34 34 xff0c 34 gt 34 xff0c 34 34 和 34 34 都是运算符 xff0c 它们的作用是明显不同的 xff0c 但是初学者很容易被其迷惑 1 34 34 是成员访问运算符 x
  • ubuntu系统中忘记root密码的解决办法

    1 启动ubuntu按shift进入grub菜单 xff1b 2 选择recovery mode进入Recovery Menu界面 xff0c 选择root Drop to root shell prompt 3 修改root密码操作 xf
  • C++语言实现哈希表中的线性探测法和平方探测法

    哈希表 xff08 Hash表 xff09 xff0c 也称为散列表 xff0c 是一种数据结构 xff0c 通过使用哈希函数将键映射到数组的特定位置来实现高效的查找 插入和删除操作 哈希函数将键转换为一个整数 xff0c 这个整数对应数组
  • C++实现的二叉树前序遍历函数

    include lt iostream gt using namespace std struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x lef
  • c语言和c++实现层序遍历

    层序遍历是一种二叉树的遍历方式 xff0c 也称为广度优先遍历 xff0c 它的遍历顺序是 xff1a 从上到下 xff0c 从左到右 xff0c 一层一层地遍历整棵树 在 C 语言中 xff0c 我们可以使用队列来实现层序遍历 具体实现步
  • C语言获取wifi状态

    mark https blog csdn net dongyoubin article details 122134198 int getWirelessStatus char ath char ssid char ipAddr
  • 最全Visual Studio版本号对应表VisualStudioVersion

    名字 版本号 简称 全称 msvc70 VC7 0 VS2002 Microsoft Visual Studio 2002 msvc71 VC7 1 VS2003 Microsoft Visual Studio 2003 msvc80 VC
  • 二叉树静态实现的示例代码

    使用指针对于初学者容易出现很多困惑 下面是一个完整的二叉树静态实现的示例代码 xff0c 包括初始化 插入节点 各种遍历方法以及一些辅助函数 include lt stdio h gt include lt stdlib h gt defi
  • 广度优先搜索(BFS)算法实现二叉树层序遍历的 C++ 代码

    include lt iostream gt 输入输出流 include lt vector gt 向量容器 include lt queue gt 队列容器 using namespace std 命名空间 定义二叉树节点结构体 stru
  • PAT 1005 Spell It Right

    Given a non negative integer N your task is to compute the sum of all the digits of N and output every digit of the sum