zoukankan      html  css  js  c++  java
  • HDU-3787(字符串模拟)

    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 <iostream>
    #include <string>
    #include <cmath>
    #include <cstdio>
    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
    ",number1+number2);
        }
        return 0;
    }
  • 相关阅读:
    Oracle DBA手记3:数据库性能优化与内部原理解析
    产品部和业务部门的利益之争
    利用dir函数查询各个数据类型的方法
    Python自动单元测试框架
    十一长假归来
    我心爱的TT被我擦到了,伤心!
    150首现代最流行的歌曲连放
    Increase bugzilla attachment size
    Python中的搜索路径
    抛出异常
  • 原文地址:https://www.cnblogs.com/immortal-worm/p/5031795.html
Copyright © 2011-2022 走看看