zoukankan      html  css  js  c++  java
  • 【2037】利用字符串处理,输出x+y的结果

    Time Limit: 1 second
    Memory Limit: 50 MB

    【问题描述】

        输入两个整数x,y输出它们的和。(0<=x,y<=10的100次幂)

    【输入】

        共2行;
        第一行为x。
        第二行为y。

    【输出】

        包含1行,一个整数,表示求得的和。

    【输入样例】

        123
        1234
    
    

    【输出样例1】

        1357 回车结束
    
    

    【题解】

    高精度加法。

    原理:

    如两个加数分别为

    789543

    1111111

    将他们以整数形式倒着存入两个数组 数组的每一个位置存一位数字

    a[] =  345987

    b[] = 1111111

    加的时候直接c[i]+=a[i]+b[i]就可以,因为是倒着存 进位可以直接进到下一位。

    【代码】

    #include <cstdio>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    const int MAXN = 400;
    
    string s1,s2;
    int a[MAXN],b[MAXN],c[MAXN],l1,l2,l3;
    
    void input_data() //以字符串的形式输入数据
    {
    	cin >> s1;
    	cin >> s2;
        l1 = s1.size();//获取数字的长度
        l2 = s2.size();
        for (int i = 1;i <= l1;i++) //存入一个整形数组
            a[i] = s1[l1-i] - '0';
        for (int i = 1;i <= l2;i++)
            b[i] = s2[l2-i] - '0';
        if (l1 > l2) //获取两个数中那个较长的数字
            l3 = l1;
                else
                    l3 = l2;
    }
    
    void get_ans()
    {
        for (int i = 1;i <= l3;i++) //初始化一下答案数组
            c[i] = 0;
        for (int i = 1;i <= l3;i++) //做加法
            {
                    c[i] = c[i] + a[i] + b[i];
                    c[i+1] = c[i+1] + (c[i] /10); //处理进位问题
                    c[i] = c[i] % 10;
            }
        while (c[l3+1]>0) //不断进位。
            {
                    l3++;
                    c[l3+1] = c[l3+1] + c[l3]/10;
                    c[l3] = c[l3] % 10;
            }
    }
    
    void output_ans()
    {
            for (int i = l3;i >= 1;i--)
                printf("%d",c[i]);
            printf("
    ");
    }
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
    	input_data();
    	get_ans();
    	output_ans();
    	return 0;
    }
    


     


     

  • 相关阅读:
    重温算法第一篇:冒泡排序
    服务器报警邮件发送到QQ邮箱,但是被系统拦截
    记录MongoDB常用查询
    一次 Mysql 字符集的报错,最后让我万马奔腾!!!
    Hbase 一次表异常,有一张表 无法count scan 一直显示重连
    spark编译安装 spark 2.1.0 hadoop2.6.0-cdh5.7.0
    有一些sql 是必须要做笔记的!!
    linux 修改openfiles
    在线HTTP POST/GET接口测试工具
    HBase 官方文档中文版
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632488.html
Copyright © 2011-2022 走看看