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