c语言
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param s string字符串 第一个整数
* @param t string字符串 第二个整数
* @return string字符串
*/
char* solve(char* s, char* t ) {
int slen = strlen(s);
int tlen = strlen(t);
int rlen = slen + tlen;
char *r = (char *)malloc(rlen + 1);
int i, j;
char sbit, tbit, carry, rbit;
memset(r, '0', rlen);//将前rlen个单位定义为0
r[rlen] = '\0';//结尾加结束符号
/* 执行乘法运算
* 123 (t)
*x 456 (s)
*-------
* 518 (r)
*/
for (i = 0; i < slen; i++) {
sbit = s[slen - i - 1];
carry = 0;
for (j = 0; j < tlen; j++) {
tbit = t[tlen - j - 1];
rbit = r[rlen - j - i - 1];
carry = (rbit - '0') + carry
+ (sbit - '0') * (tbit - '0');
r[rlen - j - i - 1] = (carry % 10) + '0';
carry /= 10;
}
r[rlen - tlen - i - 1] += carry;
}
if (carry == 0) {
return &r[1];
}
return r;
}