PAT-A1001-A+B Format-附题解

PS:萌新刷题时的代码,基本没有改过,测试点都通过了。如果有bug,请谅解。

1.题目阐述

题目要求很简单,就是要求对整型数据求和然后用特殊格式输出,即每隔三位数进行一次取逗号。

2.题目思路

用threeNums数组每隔三位依次存储原数的位数数字,也就是将和通过位数分隔出来。最后输出结果,注意数字打印不足三位数需要在前面补零,可以通过printf("%03d",num);做到.
另外本题cin、cout最好别用,因为题目太简单了似乎对速度有额外限制,cin、cout,别问我为什么知道…

3.题解代码

我的代码如下:

#include<cstdio>
#include<algorithm>
using namespace std;


int a, b, c;
const int maxn = 10;
int threeNum[maxn];
int L = 0;
void printFormat(){
	int temp = c;
	int less;
	bool flag = true;
	if (temp < 0) {
		flag = false;
		temp *= -1;
	};
	while (temp > 999){
		less = temp % 1000;
		threeNum[L++] = less;
		temp /= 1000;
	}

	if (flag == false){
		printf("-%d", temp);
	}
	else{
		printf("%d", temp);
	}
	if (L != 0){
		for (int i = L - 1; i >= 0; i--){
			printf(",%03d", threeNum[i]);
		}
	}
	printf("\n");
}


void Test1001(){
	
	scanf("%d %d", &a, &b);//读取需要取地址的
	c = a + b;
	printFormat();

}
int main(){
	Test1001();
	getchar();
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值