从今天起每天刷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 分)

最新文章

  1. Python: open和codecs.open
  2. OleDB Destination 用法
  3. ZOJ 3911 线段树
  4. 413. Arithmetic Slices
  5. BI之SSAS完整实战教程5 -- 详解多维数据集结构
  6. 淘宝(阿里百川)手机客户端开发日记第三篇 SlidingPaneLayout实现侧滑菜单
  7. ios中怎么样点击背景退出键盘
  8. 如何在vmware上创建共享磁盘
  9. My implementation of AVL tree
  10. linux设备驱动那点事儿之平台设备理论篇
  11. Makefile第三讲:终端传值给Makefile、Makefile传值给C++代码
  12. 《Android开发艺术探索》读书笔记 (2) 第2章 IPC机制
  13. Nginx配置优化及深入讲解,大家可以听一下
  14. Netbeans IDE 安装Emmet插件并解决Emmet插件无效果问题
  15. c/c++ 栈与队列实现车库的出入与收费
  16. asp.net 获取 repeater checkbox 值
  17. linux jdk 环境变量
  18. 1823: [JSOI2010]满汉全席 2-sat
  19. dotnet core瘦身发布
  20. Android四大组件-Content Provider

热门文章

  1. web项目jsp中无法引入js问题
  2. StudyAndroid.2 Activity生命周期
  3. 【JVM从小白学成大佬】3.深入解析强引用、软引用、弱引用、幻象引用
  4. JavaScript数组方法大全(第二篇)
  5. 实验Oracle数据文件被误删除的场景恢复
  6. Python之变量、常量以及注释
  7. 用Canvas实现Photoshop的钢笔工具(贝塞尔曲线)
  8. 树形动态规划 fjutoj-2392 聚会的快乐
  9. hdu2586 How far away ?(lca模版题)
  10. Linux系统调用表(x86_64)