大数A+B

很激动的奔来写这篇日志(虽然已经深更半夜) 想了有些时间 终于想出来这个大数加法的源码了 时间耦合度O(N)

跟其他代码一样 用的处理字符串的方法 不过不一样的是接受两数和的字符串我从尾部输入数据 避免了出现多出一位从头再处理一遍的状况 同时也是给两个字符串各一个下标变量 向前推进 自我感觉是比较高效率的代码(虽然因为半夜交的 运行时间不精确被加加嘲讽了一番→_→) 还是蛮兴奋的~~(另想吐槽分神的数据……说好的整数怎么能带前导0呢T^T害我WA了两次 差点有改代码的冲动……)

代码奉上:

#include 
#include 

int main()
{
    char a[1502],b[1502],k[1503];
    int i,j;
    int lena,lenb,x;
    while(~scanf("%s%s",a,b))
    {
        lena=strlen(a);
        lenb=strlen(b);
        k[1502]=0;
        for(i=lena-1,j=lenb-1;i+1&&j+1;i--,j--)
        {
            k[1502-(lena-i)]=a[i]+b[j]-'0';
            if(k[1502-lena+i+1]>'9')
            {
                k[1502-lena+i+1]='0'+k[1502-lena+i+1]-'9'-1;
                k[1502-lena+i]++;
            }
        }
        x=lena;
        if(i>=0)
        {
            for(;i+1;i--)
            {

                k[1502-lena+i]=a[i];
                if(k[1502-lena+i+1]>'9')
                {
                    k[1502-lena+i+1]='0'+k[1502-lena+i+1]-'9'-1;
                    k[1502-lena+i]++;
                }
            }
            x=lena;
        }else if(j>=0)
        {
            for(;j+1;j--)
            {

                k[1502-lenb+j]=b[j];
                if(k[1502-lenb+j+1]>'9')
                {
                    k[1502-lenb+j+1]='0'+k[1502-lenb+j+1]-'9'-1;
                    k[1502-lenb+j]++;
                }
            }
            x=lenb;
        }
        /*if(k[1502-x]>'9')
        {
            k[1502-x]='0'+k[1502-x]-'9'-1;
            x++;
            k[1502-x]='1';
        }可忽略 处理前导的代码*/
       while(k[1502-x]=='0') x--;
       printf("%s\n",k+1502-x);
    }

    return 0;
}

<think>好的,用户想了解如何用编程语言实现简单的a+b操作。首先,我需要明确用户的需求,可能他们刚开始学习编程,需要基础示例。接下来,我应该考虑不同编程语言的实现方式,比如Python、Java、C++、JavaScript等,因为这些都是常见语言,适合初学者。 然后,我要检查提供的引用内容,看看是否有相关信息。引用[1]提到Python中的a + b操作,引用[4]也提到了Python的例子,这可以作为Python部分的参考。其他引用可能涉及优化或特殊问题,但用户的问题比较基础,所以主要参考引用[1][4]。 接下来,我需要确保回答符合系统级指令:行内数学公式用$...$,独立公式用$$...$$,正确使用LaTeX,中文回答,生成相关问题。用户要求结构清晰,分步骤说明,保证真实可靠。 可能会遇到的问题是用户是否需要更详细的解释,比如变量声明、输入输出处理。例如,在Python中,如何处理用户输入两个数,可能需要用到input()split()函数。在Java中,可能需要使用Scanner类。这些细节应该包括在示例代码中,帮助用户理解整个流程。 另外,要注意不同语言之间的差异,比如静态类型语言(如Java、C++)需要声明变量类型,而动态类型语言(如Python、JavaScript)则不需要。这也是需要指出的地方,帮助用户区分不同语言的特性。 还需要考虑错误处理,比如用户输入非数字时的处理,但用户的问题可能只需要简单实现,所以暂时可以不涉及异常处理,保持示例简洁。 最后,生成相关问题时要围绕a+b的实现,可能涉及输入方法、扩展到大数相加、不同语言比较等,确保问题对用户深入学习有帮助。</think>### 如何实现简单的a+b操作 在编程中实现两个数的加法操作(a+b)是基础任务,不同语言的实现方式略有差异。以下是常见编程语言的实现示例: #### 1. Python实现 Python支持动态类型,可直接对数字或字符串进行加法操作[^1]: ```python a = 3 b = 5 print(a + b) # 输出8 # 带用户输入版本 a, b = map(int, input().split()) print(a + b) ``` 数学表达式可写为:$sum = a + b$ #### 2. Java实现 Java需声明变量类型并通过Scanner获取输入: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } } ``` #### 3. C++实现 ```cpp #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; return 0; } ``` #### 4. JavaScript实现 ```javascript // 控制台输入需要配合Node.js环境 const a = parseInt(prompt("输入a")); const b = parseInt(prompt("输入b")); console.log(a + b); ``` $$ sum(a,b) = a + b $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值