首页 > 其他分享 >PAT Basic 1002. 写出这个数

PAT Basic 1002. 写出这个数

时间:2023-02-21 20:59:07浏览次数:53  
标签:count pchar PAT 数字 sum char Basic 100 1002

PAT Basic 1002. 写出这个数

1. 题目描述:

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

2. 输入格式:

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

3. 输出格式:

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

4. 输入样例:

1234567890987654321123456789

5. 输出样例:

yi san wu

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

首先这里保证输入n小于\(10^{100}\),对于数值类型来说是很大的,所以需要作为字符串读入。

然后就是对读入的字符串逐字符进行处理就好,比较直接的思路。

最后为了输出数字的拼音,定义了一个char指针数组指向各数字拼音的字面量,避免了直接定义二维数组的存储空间浪费。

My Code:

#include <stdio.h>

int main(void)
{
    char * pinyin[] = {"ling", "yi", "er", "san",
                      "si", "wu", "liu", "qi",
                      "ba", "jiu"};
    
    char n[100]; // 这里好像应该定义101的,但100也accepted了。由n的上限可推得n最多有100位数字, 
    int sum = 0; // 但注意字符串还要存储末尾的空字符(null character)
    char * pchar;
    int result[4]; // 这里其实最多3个元素,因为假设n的100位全为9,其各位数字之和的最大值为900
    unsigned char count = 0;
    
    scanf("%s", n);
    
    pchar = n;
    while(*pchar != '\0') // 这里可以直接写while(*pchar),空字符的ascii码为0
    {
        sum += *pchar - '0';
        pchar++;
    }
    
    while(sum) // 这里计算总和的各位数字
    {
        result[count] = sum % 10;
        sum /= 10;
        count++;
    }
    
    while(count > 1)
    {
        printf("%s ", pinyin[result[count-1]]);
        count--;
    }
    
    printf("%s\n", pinyin[result[0]]);
    
    return 0;
}

标签:count,pchar,PAT,数字,sum,char,Basic,100,1002
From: https://www.cnblogs.com/tacticKing/p/17142355.html

相关文章

  • pat1010
    题不难,但是代码有一个结果报错,猜测可能如果输入0000234的话,可能会输出-1?先标记一下看看别人的#include<iostream>#include<stdio.h>usingnamespacestd;intmain(......
  • Singleton Pattern 单例模式
    常见两种写法:饿汉式:privateA(){}//构造器私有privatestaticAinstance=newA();publicstaticAgetInstance(){returninstance;}懒汉式:privateA(){}//构......
  • pat1009
    算法笔记原题#include<iostream>#include<stdio.h>usingnamespacestd;intmain(){intnum=0;charans[90][90];while(scanf("%s",ans[num])!=EO......
  • C1002 泥泞的牧场题解
    题目描述大雨侵袭了牧场。牧场是一个\(R\timesC\)的矩形,其中\(1\leqR,C\leq50\)。大雨将没有长草的土地弄得泥泞不堪,可是小心的奶牛们不想在吃草的时候弄脏她们的蹄......
  • appium通过子节点定位父节点xpath
    https://blog.csdn.net/chushujin/article/details/109016922?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7......
  • PAT Basic 1001. 害死人不偿命的(3n+1)猜想
    PATBasic1001.害死人不偿命的(3n+1)猜想0.写在前面:好久没更新了,是真的老厚积薄发(tuoyanzheng)了,另外确实也在忙课题的事情(虽然也没啥进展...这是件upsetting的......
  • 附录E示例-UT_SpatialStructure_4
    示例概述UT_空间结构_4意图该UT为水平交叉故事线建立了空间结构。其目的是作为本故事情节即将进行的单元测试的框架。 它基于故事线SLLC-DD(IFC铁路阶段2)和bSFi_IR_SL......
  • Spatial-Temporal Identity: A Simple yet Effective Baseline for Multivariate Time
    原文:https://arxiv.org/pdf/2208.05233.pdf代码:https://github.com/zezhishao/STIDAbstractMTS预测越来越复杂,但是性能改进有限,这一现象促使作者探索MTS预测的关键因素,......
  • Path Sum 判断二叉树的和 DFS处理
    PathSumGivenabinarytreeandasum,determineifthetreehasaroot-to-leafpathsuchthataddingupallthevaluesalongthepathequalsthegivensum.F......
  • 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......