PAT-A1001

Posted hiraeth-dh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT-A1001相关的知识,希望对你有一定的参考价值。

A1001

A+B Problem?

计算a+b 每隔三位输出一个逗号

算出a+b 判断是否为负 然后分离每一位上面的数字 在输出每一个三的倍数之前输出一个逗号 同时注意该数字不能为第一数字

这样只会得到19分

为什么呢?

    while (c){
        cnt++;
        p[cnt]=c%10;
        c/=10;
    }
    if (!flag) printf("-");
    for (int i=cnt;i>=1;i--){
        if (i%3==0&&i!=cnt) printf(",");
        printf("%d",p[i]);
    }

很明显这段代码对c=0的情况是不起任何作用的 所以需要特判一下0

#include<bits/stdc++.h>
using namespace std;
int p[200],a,b,c,cnt;
bool flag=true;
int main(){
    scanf("%d%d",&a,&b);
    c=a+b;
    if (c<0) flag=false;
    c=abs(c);
    while (c){
        cnt++;
        p[cnt]=c%10;
        c/=10;
    }
    if (!flag) printf("-");
    for (int i=cnt;i>=1;i--){
        if (i%3==0&&i!=cnt) printf(",");
        printf("%d",p[i]);
    }
    if (c==0) printf("0\n");
    return 0;
} 

以上是关于PAT-A1001的主要内容,如果未能解决你的问题,请参考以下文章

PAT-A1004. Counting Leaves (30)

PAT-A 1009. Product of Polynomials

PAT-A1135. Is It A Red-Black Tree (30)

从活动中设置片段的参数

从活动中设置片段的参数

setOnClickListener RecycleView(在一个片段中)导航到另一个片段