PATA1001题解

#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
void change(int num) {
	char str[20];
	int flag,k,mod = 0,len;
	
	if(num < 0) {
		flag = 1;
		num = -num; 
	}
	else {
		flag = 0;
	}
	sprintf(str,"%d",num);  //将数字转换为字符串
	len = strlen(str);
	if(flag) printf("-");  //单独处理负号
	k = len % 3;   //因为是按3个划分,那么模3不为0必定是多余的,可以先单独输出。
	for(int i = 0;i < k; i++) {
		printf("%c",str[i]);
	}
	if(len > 3 && k != 0) //注意判断初始长度大于3,如果初始就只有2个数字不需要添加逗号
		printf(",");
	for(int i = k;i < len; i++) {
		printf("%c",str[i]);
		mod++;
		if(mod == 3 && i != len-1) {
			mod = 0;
			printf(",");
		}
	}
}
int main () {
	int a, b;
	cin >> a >> b;
	change(a+b);
}

  

posted @ 2019-01-30 18:33  奥利奥王子饼干  阅读(178)  评论(0编辑  收藏  举报