zoukankan      html  css  js  c++  java
  • pat甲级1001 A+B Format

    题意:输入两个绝对值1e6以内的整数,输出其和,需要每三位标注一个逗号

    分析:char型数组保存一下和的各位,用一个变量保存逗号信息,每三位一保存即可。需要注意如果和是负数,取模10的时候(保存和值的各位操作)同样会是负数,导致结果错误,需要绝对值操作一下。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cmath>
     5 using namespace std;
     6 char s[100010]; 
     7 int main()
     8 {
     9     ios::sync_with_stdio(false);
    10     cin.tie(0);
    11     cout.tie(0);
    12     int a,b;
    13     memset(s,0,sizeof(s));
    14     while(cin>>a>>b)
    15     {
    16         int sum=a+b;
    17         int op=0;//记录逗号信息
    18         int l=0;
    19         int sum2=abs(sum);
    20         while(sum2!=0)
    21         {
    22             int temp=sum2%10;
    23             sum2/=10;
    24             s[l++]=temp+'0';
    25             op++;
    26             if(op==3)//每三位需要操作一下,加入','到char型数组中
    27             {
    28                 op=0;
    29                 s[l++]=',';
    30             }
    31         }
    32         if(s[l-1]==',')
    33         {
    34             l--;
    35         }
    36         if(sum<0)//和为负数时注意加负号
    37         {
    38             s[l++]='-';
    39         }
    40         else if(sum==0)//处理和为0的情况
    41         {
    42             s[l++]='0';
    43         }
    44         for(int i=l-1;i>=0;i--)
    45         {
    46             cout<<s[i];
    47         }
    48         cout<<endl;
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    web网络编程
    C++ 多线程*****(看书补充)
    C++信号处理
    预指令
    C++模板*******
    C++ 命名空间
    动态存储
    异常处理**********
    私钥、秘钥详解
    Pod控制器应用进阶
  • 原文地址:https://www.cnblogs.com/wade1998/p/13417451.html
Copyright © 2011-2022 走看看