intistrue(int x, int y) { int countx = 0; int county = 0; do { x = x / 10; countx++; }while (x != 0); do { y = y / 10; county++; }while (y != 0); if (countx == county) return1; else return0; }
计算各位数相乘
intcacux(int x, int y) { int count = 0; int num = x;//注意x的值不能变,引入变量 do { num = num / 10; count++; }while (num != 0); //printf("%d\n", count); int i = 0; int ret = 0; int j = 0; for (i = 0; i < count; i++) { ret += (x % 10) * (y % 10) * pow(10, j); if ((x % 10) * (y % 10) < 10) j = j + 1; else j = j + 2; x = (x - (x % 10)) / 10; y = (y - (y % 10)) / 10; //printf("%d %d %d\n", ret, x, y); //为0的话就不能往上,<10 } return ret; }
主函数
intmain() { int num = 0; scanf("%d", &num); int i = 0; int x = 0; int y = 0; int a[100] = {0}; for (i = 0; i < num; i++) { scanf("%ld %ld", &x, &y); if (istrue(x, y) == 1) { a[i] = cacux(x, y); } else a[i] = -1; } for (i = 0; i < num; i++) { printf("%d\n", a[i]); } return0; }