PAT甲级
1001 A+B Format
思路
本题有两种解题思路
- C++中的
to_string
函数。
先计算出结果,再将结果转化为字符串,通过s.size()
计算出s
的位数,再根据其位数,插入,
最后将字符串输入 - 按位输出。
在输出结果的时候,按位输出,每输出三位,便输出一个,
这样也可以达到目的。
要点
本题的关键点在于,
的输出。
- 要熟悉C++库函数,平常多联系,多加留意。
- 采用合适的存储结构和算法,使程序更为简洁。
程序代码
//
// main.cpp
// 1001 A+B Format
//
// Created by Zide Liu on 2019/8/1.
// Copyright © 2019 Zide Liu. All rights reserved.
//
#include <iostream>
#include <string>
using namespace std;
int main() {
//第一种方法
int a, b, c;
string s;
cin>>a>>b;
c = a + b;
s = to_string(c);// to_string 将数值转化为字符串。返回对应的字符串。
int n = s.size();
int temp = 0;
if (c < 0) temp = 1;
for (int i = n - 3; i > temp; i -= 3) {
s.insert(i, ",");// s.insert(pos, str),pos是待插入的位置, str是待插入的字符串
}
cout << s << endl;
//第二种方法
int k[8],i=0,flag=0;//建立数组,两个七位数相加最多八位数,所以选择k[8]
if(c<0){
c=-c;
flag=1;
}
if(c==0)cout<<"0";
else{
while(c)
{
k[7-i]=c%10;
c=c/10;
i++;
}
if(flag)cout<<"-";
for(i=8-i;i<8;i++)//8-i为该数组的起始位置
{
cout<<k[i];
if(i==1||i==4)
cout<<",";
}
}
return 0;
}