菜鸟记录PAT甲级1001-
前几天刚开始对PAT甲级的刷题,首次看到英语的题目,让原本就菜的我更是头秃,但第一题叫了n遍以后满分通过的时候还是蛮爽的,在此仅记录一下该题的个人解题心路,菜鸟记录,技术极低。
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
题目分析:
加法计算,但是输出格式需分成三个一组,输入和输出的数据范围控制在10e-6~10e6。
个人想法:
首先,加法的计算和数据的范围无需多说,即重点在于输出的分组,开始我以为作为第一题,会是一个近乎没有结构或算法的题目,于是在开始之前以为会是有关键字或某个库中的函数,迟迟不敢下笔而是苦思冥想有没有学过,脑海搜索失败后开始编写这道题。
由于10e6三个一组并没有太多组,所以仅在该题中可以用if语句写,虽然很笨,但有用。
第一次提交:
1 #include<stdio.h>
2
3 int main ()
4 {
5 int a, b;
6 int sum;
7 int s; //记录sum值千位以上的数值,方便输出
8 scanf("%d%d", &a, &b);
9 sum = a + b;
10 s = sum / 1000;
11 while (sum / 1000 != 0)
12 {
13 s = sum / 1000;
14 if (s >= 1000)
15 {
16 a=s/ 1000;
17 printf("%d,", a);
18 s %= 1000;
19 }
20 if (s / 100 != 0) {
21 printf("%d
", s);
22 }
23 else if (s / 10 != 0) {
24 printf("0%d
", s);
25 }
26 else
27 {
28 printf("00%d,", s);
29
30 }
31 sum = sum % 1000;
32 }
33 if (sum / 100 != 0) {
34 printf("%d
", sum);
35 }
36 else if(sum/10!=0) {
37 printf("0%d
", sum);
38 }
39 else
40 {
41 printf("00%d
", sum);
42
43 }
44 return 0;
45 }


