枚举和模拟
06 特殊乘法
描述
给定一个 n 位整数 A,各位从高到低依次为 a1,a2,…,an
给定一个 m位整数 B,各位从高到低依次位 b1,b2,…,bm
给定一种特殊乘法,不妨用 ⊗ 来表示,我们规定 A⊗B
例如,123⊗45=1×4+1×5+2×4+2×5+3×4+3×5
对于给定的 A和 B,请你计算并输出 A⊗B的值
输入格式
两个整数 A和 B
输出格式
一个整数,表示 A⊗B的值
数据范围
1≤A,B≤10^9
输入样例
123 45
输出样例
54
解答
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
using namespace std;
int main() {
int sum = 0;
int a, b;
scanf("%d %d", &a, &b);
int n = b;//保留b的原始数据 内部循环每次都要从头开始
int now1;//对于a 当前要使用的这一位
int now2;//对于b 当前要使用的这一位
//下面将其逐个拆开 两个都要拆 所以用两层循环
//并不知道具体的位数 所以使用while循环
while (a != 0) {
now1 = a % 10;//保存个位
a = a / 10;//a右移1位
b = n;//b要赋初值
while (b != 0) {
now2 = b % 10;//取得b的个位
sum = sum+now1 * now2;
b = b / 10;
}
}
printf("%d",sum);
return 0;
}