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;
    }
  • 相关阅读:
    币值转换
    抓老鼠啊~亏了还是赚了?
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    第五周实验报告和总结
    第四次实验报告及总结
  • 原文地址:https://www.cnblogs.com/immortal-worm/p/5031795.html
Copyright © 2011-2022 走看看