HDU-3787(字符串模拟)
2024-10-15 21:15:58
Problem Description
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算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
1,234 2,345,678
Sample Output
-111111101
2346912
2346912
思路:
字符串模拟,做好相应的字符转换就好
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
using namespace std; int main()
{
string num1,num2;
while(cin>>num1>>num2)
{
//判断正负号
int flag1 = ,flag2 = ;
if(num1[] == '-') flag1 = -;
if(num2[] == '-') flag2 = -;
//判断两数字的长度
int len1=,len2=;
for(int i = ;i < num1.length();i++)
if(num1[i]>=''&&num1[i]<='') len1++;
for(int i = ;i < num2.length();i++)
if(num2[i]>=''&&num2[i]<='') len2++;
//分别求出两个数的绝对值
__int64 number1=,number2=;
for(int i = ;i < num1.length();i++) {
if(num1[i]>=''&&num1[i]<='') {
number1 += (num1[i]-'')*pow(,--len1);
}
}
for(int i = ;i < num2.length();i++) {
if(num2[i]>=''&&num2[i]<='') {
number2 += (num2[i]-'')*pow(,--len2);
}
}
number1 *= flag1;
number2 *= flag2;
printf("%I64d\n",number1+number2);
}
return ;
}
最新文章
- mongoose - 让node.js高效操作mongodb
- 由12306动态验证码想到的ASP.NET实现动态GIF验证码(附源码)
- ElasticSearch作为Windows服务启动
- C++做client Java做客户端传送数据
- Bootstrap 3 How-To #1 下载与配置
- Chapter 3 Discovering Classes and Object
- JavaIO(06)文件复制
- [Linux 命令]df -h
- Intrusion Detection of Specific Area Based on Video
- IIC 概述之24c系列存储器内存分析
- iOS学习心得——UINavigationController
- Csharp实现快速排序
- Python之路:Python 基础(三)-文件操作
- java.exe进程来源排查录
- SFTP服务的使用!!
- 面向对象+jquery实现拖拽功能
- spark:ML和MLlib的区别
- kbmmw 的远程桌面功能
- sysdate()简单用法
- 11慕课网《进击Node.js基础(一)》Buffer和Stream