zoukankan      html  css  js  c++  java
  • A+B Problem(高精)

    题目背景

    题目描述

    高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]

    输入输出格式

    输入格式:

    分两行输入a,b<=10^500

    输出格式:

    输出只有一行,代表A+B的值

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int c[10^500+1];
    long long d,e,y,x,cnt,jw;
    char a[10^500+1],b[10^500+1];
    int main()
    {
    	cin>>a>>b;
    	x=strlen(a);
    	y=strlen(b);
    	if(x>y)
    	{
    		cnt=x;
    	}
    	else
    	{
    		cnt=y;
    	}
    	for(d=0;d<=cnt-1;d++)
    	{
    		if(x-d-1<0||y-d-1<0)
    		{
    			if(x-d-1<0)
    			{
    				c[cnt-d]=b[y-d-1]-'0'+jw;
    				if(c[cnt-d]>=10)
    				{
    					jw=1;
    					c[cnt-d]=c[cnt-d]-10;
    				}
    				else
    				jw=0;
    				continue;
    			}
    			if(y-d-1<0)
    			{
    				c[cnt-d]=a[x-d-1]-'0'+jw;
    				if(c[cnt-d]>=10)
    				{
    					jw=1;
    					c[cnt-d]=c[cnt-d]-10;
    				}
    				else
    				jw=0;
    				continue;
    			}
    		}	
    		if(a[x-d-1]-'0'+b[y-d-1]-'0'+jw<10)
    		{
    			c[cnt-d]=jw+a[x-d-1]-'0'+b[y-d-1]-'0';
    			jw=0;
    		}
    		else
    		{
    			c[cnt-d]=jw+a[x-d-1]-'0'+b[y-d-1]-'0'-10;
    			jw=1;
    		}
    	}
    	if(jw==1)
    	{
    		c[0]=1;
    	}
    	for(int ltt=0;ltt<=cnt;ltt++)
    	{
    		if(ltt==0)
    		{
    			if(c[ltt]==0)
    			{
    				continue;
    			}
    		}
    		cout<<c[ltt];
    	}
    }


  • 相关阅读:
    大整数乘除法
    java大神进阶之路
    自定义Swap
    指针基础详解
    已知前序中序求后序(转载)
    杭电1003_Max Sum
    回溯法求解迷宫问题
    linux下安装QQ等EXE文件
    java工程中使用freemarker例子
    maven自动部署到tomcat的问题
  • 原文地址:https://www.cnblogs.com/ztz11/p/9189991.html
Copyright © 2011-2022 走看看