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 的相关文章

  • mysql的left join_mysql中的left join、right join、join

    sql准备 INSERT INTO name name age grade VALUES 39 小白 39 20 1 39 小黑 39 21 2 39 小红 39 22 3 39 小花 39 23 4 39 小绿 39 24 5 INSER
  • PAT乙级题解1016——1016 部分A+B(Java)

    PAT乙级题解1016 1016 部分A 43 B xff08 Java xff09 一 xff1a 题目 二 xff1a 输入输出 输入样例 xff1a span class token number 3862767 span span
  • 【PAT】B1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 xff0c 如果我们先把 4 个数字按非递增排序 xff0c 再按非递减排序 xff0c 然后用第 1 个数字减第 2 个数字 xff0c 将得到一个新的数字 一直重复这样做 xff0c 我们很
  • Python3二分查找库函数bisect(), bisect_left()和bisect_right()介绍

    前提 xff1a 列表有序 xff01 xff01 xff01 bisect 和bisect right 等同 xff0c 那下面就介绍bisect left 和bisec right 的区别 xff01 用法 xff1a index1 s
  • 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
  • PAT乙级1037 在霍格沃茨找零钱 (20分)

    pragma warning disable 4996 include
  • L1-040. 最佳情侣身高差

    专家通过多组情侣研究数据发现 最佳的情侣身高差遵循着一个公式 女方的身高 1 09 男方的身高 如果符合 你俩的身高差不管是牵手 拥抱 接吻 都是最和谐的差度 下面就请你写个程序 为任意一位用户计算他 她的情侣的最佳身高 输入格式 输入第一
  • 7-1 用格里高利公式求给定精度的PI值 (15分)

    教育超市 浙大版 C语言程序设计 第3版 第4章 循环结构 练习4 1 用格里高利公式求 的近似值 本题要求编写程序 计算序列部分和 4 1 1 3 1 5 1 7 直到最后一项的绝对值小于给定精度eps 输入格式 输入在一行中给出一个正实
  • pta 一元多项式的乘法与加法运算

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

    读入n名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含1个测试用例 格式为 第1行 正整数n 第2行 第1个学生的姓名 学号 成绩 第3行 第2个学生的姓名 学号 成绩 第n 1行 第n个学生
  • PAT 1033 旧键盘打字

    题目链接 请点击 思路 用string定义两个字符串 然后比较就可以了 然而 开始直接用cin gt gt str1 gt gt str2 导致有部分测试点始终未过去 后来参考他人的博客才发现这里应该用getline原因就在于第一行可能是空
  • PAT1033 旧键盘打字 (20 分)

    题目描述 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大
  • Pat刷题真题乙级(4)

    标题 前言 Pat乙级1013 组个最小数 Pat乙级1014 科学计数法 Pat乙级1017 打印沙漏 Pat乙级1018 人口普查 Pat乙级1019 旧键盘 前言 这个周末花了两天才写了五道题 嘿嘿 康康吧 Pat乙级1013 组个最
  • 1012 数字分类

    1012 数字分类 题目 输入格式 输入样例 输出样例 代码 小结 题目 给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1
  • 集合相似度(PAT)

    题目链接 https www patest cn contests gplt L2 005 一开始用map超时了 总是有一组数据超时 当时觉得很纳闷 后来学到了 其实set也是可以开数组的 map也是 include
  • 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
  • 1032. 挖掘机技术哪家强(20)

    为了用事实说明挖掘机技术到底哪家强 PAT组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第1行给出不超过105的正整数N 即参赛人数 随后N行 每行给出一位参赛者的信息和成绩 包括其所代表的学校的编号
  • 1007. 素数对猜想 (20)

    让我们定义 dn 为 dn pn 1 pn 其中 pi 是第i个素数 显然有 d1 1 且对于n gt 1有 dn 是偶数 素数对 猜想 认为 存在无穷多对相邻且差为2的素数 现给定任意正整数N lt 105 请计算不超过N的满足猜想的素数
  • 【PAT乙级】旧键盘打字

    题目描述 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大
  • 8-0. 查找整数(10)

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

随机推荐

  • 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