char reverse_str(char str) { unsigned int i; char temp; unsigned int len = strlen(str); for (i = 0; i < len / 2; i++) { temp = str[i]; str[i] = str[len - 1 -i]; str[len - 1 -i] = temp; } return str; } /
- 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- 计算两个数之和
- @param s string字符串 表示第一个整数
- @param t string字符串 表示第二个整数
- @return string字符串
- C语言声明定义全局变量请加上static,防止重复定义 / char solve(char* s, char* t ) { char sum = (char)malloc(sizeof(char) * 200010); int temp = 0; unsigned int i; unsigned int lens = strlen(s); unsigned int lent = strlen(t); if (lens == 0) { free(sum); return t; } if (lent == 0) { free(sum); return s; } reverse_str(s); reverse_str(t); if (lens > lent) { for (i = 0; i < lens; i++) { if (i < lent) { sum[i] = ((s[i] - '0') + (t[i] - '0') + temp) % 10 + '0'; temp = ((s[i] - '0') + (t[i] - '0') + temp) / 10; } else { sum[i] = ((s[i] - '0') + temp) % 10 + '0'; temp = ((s[i] - '0') + temp) / 10; } } } else { for (i = 0; i < lent; i++) { if (i < lens) { sum[i] = ((s[i] - '0') + (t[i] - '0') + temp) % 10 + '0'; temp = ((s[i] - '0') + (t[i] - '0') + temp) / 10; } else { sum[i] = ((t[i] - '0') + temp) % 10 + '0'; temp = ((t[i] - '0') + temp) / 10; } } } if (temp) { sum[i] = temp + '0'; } reverse_str(sum); return sum; }