/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ #include <stdlib.h> #include <stdio.h> #include <string.h> int max(int a, int b) { return a > b ? a : b; } char* solve(char* s, char* t ) { // write code here int a[100005] = {0}, b[100005] = {0}, c[100005] = {0}; char *d=(char *)malloc(sizeof(char)*100005); int len1 = strlen(s); int len2 = strlen(t); for (int i = 0; i < len1; i++) { a[i] = s[len1 - i - 1] - '0'; } for (int i = 0; i < len2; i++) { b[i] = t[len2 - i - 1] - '0'; } int carry = 0; int len = max(len1, len2); for (int i = 0; i < len; i++) { c[i] = a[i] + b[i] + carry; carry = c[i] / 10; c[i] = c[i] % 10; } if (carry != 0) { c[len] = carry; len++; } int j=0; for (int i = len - 1; i >= 0; i--,j++) { d[j]=c[i]+'0'; } d[j] = '\0'; return d; }