PTA A1001&A1002
从今天起每天刷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<stdio.h>
#include<stdlib.h>
#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<stdio.h>
#include<stdlib.h>
#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<stdio.h>
#include<stdlib.h>
#define maxsize 10struct 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的更多相关文章
- Python数据分析--Pandas知识点(一)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. im ...
- 浙大PTA - - 堆中的路径
题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21731 本题即考察最小堆的基本操作: #include "iostrea ...
- 浙大PTA - - File Transfer
题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...
- 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 ...
- PTA中提交Java程序的一些套路
201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...
- PTA分享码-Java
主要用于Java语法练习,非竞赛类题目. 1. Java入门 959dbf0b7729daa61d379ec95fb8ddb0 2. Java基本语法 23bd8870e ...
- C语言第一次实验报告————PTA实验1.2.3内容
一.PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...
- PTA题---求两个有序序列中位数所体现的思想。
---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A0,A1, ...
- 第十四,十五周PTA作业
1.第十四周part1 7-3 #include<stdio.h> int main() { int n; scanf("%d",&n); int a[n]; ...
随机推荐
- R 实用命令 1
Quit and restart a clean R session from within R? If you're in RStudio: command/ctrl + shift + F10 . ...
- Okhttp3源码解析(5)-拦截器RetryAndFollowUpInterceptor
### 前言 回顾: [Okhttp的基本用法](https://www.jianshu.com/p/8e404d9c160f) [Okhttp3源码解析(1)-OkHttpClient分析](htt ...
- Egret白鹭开发微信小游戏手机震动功能
最近一直在修改调整项目,没有接触新功能,今天终于有机会,去翻了微信API,发现手机震动的API,今天分享出来大家一起学习学习 对于震动,微信提供了两个API,分别是: wx.vibrateShort: ...
- DOM选择器之元素选择器
DOM中元素选择器 在DOM中我们可以将元素选择器分为两类:1.元素节点选择器:2.其它节点选择器.通过选择器选择HTML中的元素以对其进行操作,以此实现用JS对页面的操作. 一.元素节点选择器 1. ...
- Java任务调度框架Quartz教程实例
介绍: Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. 核心概念 Quar ...
- three.js实现球体地球城市模拟迁徙
概况如下:1.SphereGeometry实现自转的地球:2.THREE.ImageUtils.loadTexture加载地图贴图材质:3.THREE.Math.degToRad,Math.sin,M ...
- 成功项目管理与PMP认证2017
http://study.163.com/course/courseLearn.htm?courseId=1064005#/learn/video?lessonId=1003778171&co ...
- Count on a tree 树上区间第K小
Count on a tree 题意:求路径 u到v上的 第k小的权重. 题解:先DFS建数, 然后对于每个节点往上跑出一颗主席树, 然后每次更新. 查询的时候, u, v, k, 找到 z = l ...
- 题解 yzoj1663: 愤怒的牛(二分) yzoj1662: 曲线(三分)
话说二分和三分的题还没有整理过,就趁这两题来整理下笔记 先讲讲关于二分,对于二分的具体边界长期以来对我来说都是个玄学问题,都是边调边拍改对的.思路大体是确定左边界l,和有边界r,判断满足条件缩小范围. ...
- Mysql之zip格式的安装
Mysql之zip格式的安装 一.配置环境变量 首先,我新建一个文件夹,将其改名为MySQL Sever 5.6,其路径为D:\Program Files (x86)\MySQL\MySQL Seve ...