题目描述
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35
输入
两个小于1000000000的数
输出
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
样例输入
24 65
42 66666
3 67
样例输出
66
180
39
参考代码
#include<stdio.h>
#include<string.h>
int main() {
char n1[10], n2[10];
while (scanf("%s %s", n1, n2) != EOF)
{
/* code */
int sum = 0;
for (int i = 0; i < strlen(n1); i++)
{
/* code */
for (int j = 0; j < strlen(n2); j++)
{
/* code */
sum += (n1[i] - '0') * (n2[j] - '0');
}
}
printf("%d\n", sum);
}
return 0;
}
注意
- 将字符’0’-‘9’转换为数字,只需将字符变量减去’0’即可。原因是字符和数字在内存里都是以ASCII码形式存储的。减去’0’,实际上就是减去字符’0’的ASCII码,而字符’0’的ASCII码是30,所以减去’0’也就是减去30,这样就可以转换成字符对应的数字了。


被折叠的 条评论
为什么被折叠?



