`
风吹过PP好冷
  • 浏览: 36854 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

PAT1001 A+B Format

    博客分类:
  • PAT
PAT 
阅读更多

在一行中输入整数 a 和 b,用空格隔开( -1000000 <= a, b <= 1000000 )

输出a+b的值,用千分位格式输出


Sample Input

-1000000 9


Sample Output

-999,991

 

python版本代码如下

 

 

 

import re
import sys

def fun(num):
    if num >= 1000:
        fun(num/1000)
        sys.stdout.write(",%03d" % (num%1000))
    else:
        sys.stdout.write(num)

def test():
    str = raw_input() 
    s =  re.split(" ",str) 
    sum = int(s[0]) + int(s[1])
    if sum < 0:
        sys.stdout.write("-")
        sum = sum * (-1)
    fun(sum)
   
if __name__ == '__main__':
    test()
 

 

 

import re
import sys
str = raw_input() 
s =  re.split(" ",str) 
sum = int(s[0]) + int(s[1])
if sum < 0:
    sys.stdout.write("-")
    sum = sum * (-1)
str = repr(sum)
mod = len(str)%3
num = len(str)/3

if mod > 0:
    if num == 0:
        sys.stdout.write(str[0:mod])
        sys.exit()
    else:
        sys.stdout.write(str[0:mod])
        sys.stdout.write(",")

for i in range(num -1):
    sys.stdout.write(str[mod + 3*i: mod + 3*i + 3])
    sys.stdout.write(",")
sys.stdout.write(str[mod + 3*(num-1): mod + 3*num])
 

 

C++版本代码如下

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
	int a, b;
	cin>>a>>b;
	int sum = a + b;
	if (sum < 0)
	{
		cout<<"-";
	}
	sum = abs(sum);
	stringstream strStream;
	strStream<<sum;
	string s = strStream.str();
	int mod = s.length()%3;
	int num = s.length()/3;
	if (mod > 0)
	{
		if (num == 0)
		{
			cout<<s.substr(0,mod);
			return 0;
		}
		else
		{
			cout<<s.substr(0,mod)<<",";
		}
	}
	for(int i = 0; i < num - 1; i++)
	{
		cout<<s.substr(mod + 3*i, 3)<<",";
	}
	cout<<s.substr(mod + 3*(num-1),3);

	return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics