从今天起每天刷1-2题PAT甲级

第一天

A1001 A+B Format (20 分)

题目内容

Calculate a+b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).

Input Specification:

Each input file contains one test case. Each case contains a pair of integers a and b where −106≤a,b≤106. The numbers are separated by a space.

Output Specification:

For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

Sample Input:

-1000000 9

Sample Output:

-999,991

单词

commas

n. [语] 逗号(comma的复数)

题目分析

输入两个数,计算结果后以标准格式输出,标准格式为每隔三个数字加一个逗号(这里插一句,个人感觉这里说的不太严谨,因为并没有具体说每隔三个数字是从末尾开始还是从开头开始,我一开始以为是从开头算,如2000就是,200,0,但是这题实际上是要从结尾算,2000应该是2,000,而且输入输出样例也无法看出到底是从开头算还是结尾算,导致我一直AC不了很难受)。

如果题目没有像我一样误读的话,这题应该有两种方法,一种是处理数字,结合取余取整运算符慢慢输出,我第一次做时用的是这种方法。第二种是处理字符串,用sprintf把数字转化为字符串,然后从末尾每隔三个插入一个',',类似于顺序表插入,要分正负情况,因为负数时第一个符号是-。

具体代码

#include&ltstdio.h&gt
#include&ltstdlib.h&gt
#define MAXSIZE 20
int main(void)
{
int a, b;
scanf("%d %d", &a, &b);
char C[MAXSIZE];
sprintf(C, "%d", a + b);
int M = 0;
while (C[M] != '\0')M++;
int N = M;
if (a + b > 0)
{
for (int n = 1; (M - 3 * n) > 0; n++)
{
for (int m = N - 1; m >= M - 3 * n; m--)
C[m + 1] = C[m];
C[M - 3 * n] = ','; N++;
}
}
else
{
for (int n = 1; (M - 3 * n) > 1; n++)
{
for (int m = N - 1; m >= M - 3 * n; m--)
C[m + 1] = C[m];
C[M - 3 * n] = ','; N++;
}
}
C[N] = '\0';
printf("%s", C);
system("pause");
}

1002 A+B for Polynomials (25 分)

题目内容

Input Specification:

ach input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N1 aN1 N2 aN2... NKaNK

where K is the number of nonzero terms in the polynomial, Niand aNi(i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10,0≤NK<⋯<N2<N1≤1000.

Output Specification:

For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2

2 2 1.5 1 0.5

Sample Output:

3 2 1.5 1 2.9 0 3.2

单词

polynomial

英 /,pɒlɪ'nəʊmɪəl/ 美 /,pɑlɪ'nomɪəl/

n. 多项式;多词拉丁学名;表示任何多项数之和

adj. 多项的,多词的;多项式的

exponent

英 /ɪk'spəʊnənt; ek-/ 美 /ɪk'sponənt/

n. [数] 指数;典型;说明者,说明物

n. 倡导者,鼓吹者,代表者,拥护者

adj. 说明的

coefficient

英 /,kəʊɪ'fɪʃ(ə)nt/ 美 /koʊəˈfɪʃənt/

n. [数] 系数;率;协同因素

adj. 合作的;共同作用的

decimal

英 /'desɪm(ə)l/ 美 /'dɛsɪml/

n. 小数

adj. 小数的;十进位的

题目分析

多项式相加,由于指数范围不大,所以可以构造一个数组,用下标代表指数,对应元素为系数,这样的话可以把代码简化非常多。

一开始我用的是一种略笨的方法,做了三个结构体数组,并且默认其指数是以递减的方式输入的,所以一直有两个测试点过不了,现在把错误代码也一并贴出。

具体代码

正确

#include&ltstdio.h&gt
#include&ltstdlib.h&gt
#define MAXSIZE 1001
int n;
double m[MAXSIZE];
int k=0; int main(void)
{
scanf("%d", &n);
for (int i = 0; i = 0; i--)
{
if (m[i] != 0)
{
printf(" %d %.1f",i,m[i]);
}
}
}

错误

#include&ltstdio.h&gt
#include&ltstdlib.h&gt
#define maxsize 10

struct a {
int e;
float c;
};

struct a A[maxsize];
struct a B[maxsize];
struct a C[maxsize];

int M, N, K ;

int main(void)
{
int M, N;
scanf("%d", &M);
for (int i = 0; i B[q].e)
{
C[K].c = A[p].c;
C[K].e = A[p].e;
K++;
p++;
}
else if (A[p].e == B[q].e)
{
C[K].c = A[p].c + B[q].c;
C[K].e = A[p].e;
K++;
p++;
q++;
}
else if (A[p].e

参考博客

【PAT甲级】1002 A+B for Polynomials (25 分)

PTA A1001&A1002的更多相关文章

  1. Python数据分析--Pandas知识点(一)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. im ...

  2. 浙大PTA - - 堆中的路径

    题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21731 本题即考察最小堆的基本操作: #include "iostrea ...

  3. 浙大PTA - - File Transfer

    题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...

  4. ERROR<53761> - Plugins - conn=-1 op=-1 msgId=-1 - Connection Bind through PTA failed (91). Retrying...

    LDAP6.3在DSCC控制台启动实例完成,但是操作状态显示“意外错误”,查看日志如下: 04/May/2016:21:10:39 +0800] - Sun-Java(tm)-System-Direc ...

  5. PTA中提交Java程序的一些套路

    201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...

  6. PTA分享码-Java

    主要用于Java语法练习,非竞赛类题目.   1. Java入门          959dbf0b7729daa61d379ec95fb8ddb0   2. Java基本语法   23bd8870e ...

  7. C语言第一次实验报告————PTA实验1.2.3内容

    一.PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...

  8. PTA题---求两个有序序列中位数所体现的思想。

    ---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​, ...

  9. 第十四,十五周PTA作业

    1.第十四周part1 7-3 #include<stdio.h> int main() { int n; scanf("%d",&n); int a[n]; ...

随机推荐

  1. python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...

  2. Mybatis批处理(批量查询,更新,插入)

    mybatis批量查询 注意这里的 in 和   <trim prefix="(" suffix=")"> 以及 in ( )的三种方式的(例1(推 ...

  3. 实验Oracle数据文件被误删除的场景恢复

    环境:RHEL 5.4 + Oracle 11.2.0.3 背景:数据库没有备份,数据库文件被误操作rm,此时数据库尚未关闭,也就是对应句柄存在,如何快速恢复? 1.某个普通数据文件被删除 2.所有数 ...

  4. Flutter学习笔记(24)--SingleChildScrollView滚动组件

    如需转载,请注明出处:Flutter学习笔记(23)--多 在我们实际的项目开发中,经常会遇到页面UI内容过多,导致手机一屏展示不完的情况出现,以Android为例,在Android中遇到这类情况的做 ...

  5. 90002CAD相关操作

    第一章   初识CAD 1.1 CAD能干什么 (1)绘制机械图/建筑图/装修图等二维复杂工程图的不二之选.二维设计软件的王者. (2)CAD可以绘制平面图.轴测图(二维线框表示三维图形).立体图(三 ...

  6. Python之读取用户指令和格式化打印

    Python之读取用户指令和格式化打印 一.读取用户指令 当你的程序要接收用户输入的指令时,可以用input函数: name = input("请输入你的名字:") print(& ...

  7. Spring学习之旅(十四)--缓存

    数据库的读写并发一直都是应用性能的瓶颈所在之一,针对改动频率很小的数据我们应该将他存放到缓存中,减少与数据库的交互. 启用对缓存的支持 Spring 对缓存的支持有两种方式: 注解驱动的缓存 XML ...

  8. CodeForces 1200F

    题意略. 思路: 如果是问一下然后搜一下,那必然是不现实的.因此我们要预处理出所有的答案. 我们令mod = lcm(m1,m2,...,mn).可知,在任意一点,我们挑选两个不同的数c1.c2,其中 ...

  9. Leetcode之回溯法专题-79. 单词搜索(Word Search)

    Leetcode之回溯法专题-79. 单词搜索(Word Search) 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元 ...

  10. MSIL实用指南-数学运算

    C#支持的数学运算是加.减.乘.除.取模,它们对应的指令是Add.Sub.Mul.Div.Rem. 这五个运算都需要两个参数,它们的通用步骤1.生成加载左边变量2.生成加载右边变量3.生成运算指令 实 ...