zoukankan      html  css  js  c++  java
  • HDOJ1004

    #include<iostream>
    #include "cstring"
    using namespace std;
    int add(char s1[],char s2[])
    {
        int a[1001]={0},b[1001]={0};//当a[1000]时出错会在最后出现一个1
        int strlen1 = strlen(s1);
        int strlen2 = strlen(s2);
        for(int i=(strlen1-1),j=0;i>=0;i--)//如何将字符串数字转换为数字数组
            a[j++] = s1[i] - '0';
        for(int i=(strlen2-1),j=0;i>=0;i--)//将字符串调转输入
            b[j++] = s2[i] - '0';
    
        for(int i=0;i<1000;i++)
        {
            a[i] = a[i] + b[i];
            if (a[i] >= 10)
            {
                a[i] = a[i] - 10;
                a[i + 1]++;
            }
        }
        int i;
        for(i=1000;i>=0&&a[i]==0;i--); //将i定位到数组的有效端
    
        for( ;i>=0;i--)
            cout << a[i];
    
    
        return 0;
    }
    int main() {
        int n;
        char a[1000], b[1000];
        cin >> n;
        for (int i = 0; i < n; i++) {
            cin >> a >> b;
            cout << "Case " << i + 1 << ":" << endl;
            cout << a << " + " << b << " = ";
            add(a, b);
            cout << endl;
            if (i != (n - 1))
                cout << endl;
    
        }
    
        return 0;
    }

    第一、如何将长数字转化为字符串进行计算

    第二、for的灵活运用,包括在第一个分号内多定义使字符串反向赋值给数组,包括如何将在定义数组时多出来的0抹去找到第一个不为0的数字的位子

    第三、在转换计算得过程中:为何将字符串反向的两个原因:1.相加直接进卫给后一位2.在读取值的时候能直接从开头开始读取,而不用担心从末尾读会把本身数字的0消去的情况

    第三、strlen()是直接计算有效字符的长度与sizeof不同(所占空间)

  • 相关阅读:
    清理yum源
    XZ压缩
    Linux命令之dot
    calltree查看工程代码中的函数调用关系
    valgrind 打印程序调用树+进行多线程性能分析
    LINUX 性能 测试 优化工具
    TCP/IP(84) 详解
    perf---LINUX内核研究
    廖雪锋笔记3:类型转换
    廖雪锋笔记2:list,tuble
  • 原文地址:https://www.cnblogs.com/cunyusup/p/7669356.html
Copyright © 2011-2022 走看看