博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-3787(字符串模拟)
阅读量:5846 次
发布时间:2019-06-18

本文共 1425 字,大约阅读时间需要 4 分钟。

Problem Description
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
 

 

Input
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
 

 

Output
请计算A+B的结果,并以正常形式输出,每组数据占一行。
 

 

Sample Input
-234,567,890 123,456,789 1,234 2,345,678
 

 

Sample Output
-111111101 2346912

思路:
字符串模拟,做好相应的字符转换就好

#include 
#include
#include
#include
using namespace std;int main(){ string num1,num2; while(cin>>num1>>num2) { //判断正负号 int flag1 = 1,flag2 = 1; if(num1[0] == '-') flag1 = -1; if(num2[0] == '-') flag2 = -1; //判断两数字的长度 int len1=0,len2=0; for(int i = 0;i < num1.length();i++) if(num1[i]>='0'&&num1[i]<='9') len1++; for(int i = 0;i < num2.length();i++) if(num2[i]>='0'&&num2[i]<='9') len2++; //分别求出两个数的绝对值 __int64 number1=0,number2=0; for(int i = 0;i < num1.length();i++) { if(num1[i]>='0'&&num1[i]<='9') { number1 += (num1[i]-'0')*pow(10,--len1); } } for(int i = 0;i < num2.length();i++) { if(num2[i]>='0'&&num2[i]<='9') { number2 += (num2[i]-'0')*pow(10,--len2); } } number1 *= flag1; number2 *= flag2; printf("%I64d\n",number1+number2); } return 0;}

转载于:https://www.cnblogs.com/immortal-worm/p/5031795.html

你可能感兴趣的文章
jstat使用方法
查看>>
数据库编程
查看>>
手机影音第四天,顶部标题栏的布局实现与本地视频的搜索
查看>>
gentoo详细安装过程——2013.2.3
查看>>
Linux TC的ifb原理以及ingress流控
查看>>
【C#|.NET】长话短说 分布式通信方案综合测评
查看>>
DoS Attacks Prevention with CBAC
查看>>
Exchange Server 2016 之五:边缘服务器部署
查看>>
Broadcom网卡设置影响HyperV虚拟机网络性能
查看>>
docker讲解和命令汇总
查看>>
SHELL编程四剑客练习--find
查看>>
第一次“初吻” - 和互联网牵手的日子
查看>>
我的友情链接
查看>>
Solr7.1---简单搜索
查看>>
DR方式架设
查看>>
回文串
查看>>
sublime如何安装 package control
查看>>
实战从源码编译LAMP架构+Discuz搭建bbs论坛
查看>>
国外一些 SQL Injection 扫描工具列表
查看>>
foxmai收件箱所有邮件乱码问题解决办法
查看>>