PAT A1001 A+B Format 发表于 2020-08-23 分类于 PAT甲级 阅读次数: 给出两个整数a、b(不超过10^9),求a+b的值,并按照xxx,xxx,xxx的格式输出。 题目链接 递归解法 不需要转换成字符,直接递归,从右到左,每3位输出一个’,’,进去的时候不打印,递归回来的时候打印,即从头开始打印,递归神技~ 123456789101112131415161718192021222324#include <cstdio>void f(int n,int i) { if (n / 10 != 0) { i++; f(n / 10,i); i--; } printf("%d", n % 10); if (i % 3 == 0&&i!=0) printf(","); }int main() { int n, m, sum; scanf("%d%d", &n, &m); sum = n + m; if (sum<0) { printf("-"); sum = -sum; } f(sum,0); return 0;} 字符串解法 将整数转为字符串,然后从头到尾遍历,当前位置加1对3取余等于字符串长度对3取余时即输处“,”。 12345678910111213141516171819#include <iostream>#include <sstream>#include <string>using namespace std;int main(){ int a,b,c,len; cin>>a>>b; c=a+b; stringstream ss; ss<<c; string s=ss.str(); len=s.length(); for(int i=0;i<len;i++){ cout<<s[i]; if(s[i]=='-') continue; if((i+1)%3==len%3&&i<len-1) cout<<","; } return 0;} 本文标题:PAT A1001 A+B Format 文章作者:GavinYGM 发布时间:2020年08月23日 - 17:08 最后更新:2020年08月23日 - 17:08 原始链接:http://www.gavinygm.cn/2020/08/23/PAT-A1001-A-B-Format/ 许可协议: 转载请保留原文链接及作者。