题解 | 特殊乘法(这应当是最简洁的了)
特殊乘法
https://www.nowcoder.com/practice/a5edebf0622045468436c74c3a34240f
通过因式分解,我们应当注意到,这题不是模拟,只需求2个数,所有位数之和的乘积;
因此我们的输入只需要1个字符即可;
技巧:对于数字字符而言 ^'0' 等效于 -'0'
#include <stdio.h>
int main() {
char a;
while (a=getchar(), a != EOF) {
int va=0, vb=0;
for(;a>='0'&&a<='9';a=getchar())va+=a^48;
for(a=getchar();a>='0'&&a<='9';a=getchar())vb+=a^48;
printf("%d\n", va*vb);
}
return 0;
}
查看27道真题和解析