从键盘读入两个100以内的整数,进行乘法运算并以竖式输出
输入
89 13
输出
89
13
267
89
1157
为什么是部分提交?
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",a);
printf("%d\n",b);
int m=0,n=0;
int end=0;
if((a/10==0 && b/10==0) || (a/10==0 || b/10==0))
{
end=a*b;
}
else {
m=b/10;
n=b%10;
printf("%d\n",n*a);
printf("%d\n",m*a);
end=a*b;
}
printf("%d",end);
return 0;
}
1 33
1
33
33
应该是
1 33
1
33
---
3
30 //竖式每一位跟上面相乘,最后再相加,你这少了这一步
---
33
int main()
{
int a, b, end = 0;
scanf("%d%d", &a, &b); //
printf("%d\n%d\n", a, b);
if (b < 10)
end = a * b;
else
{
int c[2], m, n;
c[0] = b / 10 * 10;
c[1] = b % 10;
m = a * c[1];
n = a * c[0];
printf("%d\n%d\n", m, n);
end = m + n;
}
printf("%d\n", end);
return 0;
}
【以下回答由 GPT 生成】
首先,将原始代码翻译为Python代码,得到如下:
a, b = input().split()
a = int(a)
b = int(b)
print(a)
print(b)
m = b // 10
n = b % 10
print(n * a)
print(m * a)
end = a * b
print(end)
接下来,我们可以对代码进行优化,使其更加简洁和高效。
首先,我们可以使用f-string来输出结果,这样可以使代码更加简洁。
a, b = input().split()
a = int(a)
b = int(b)
print(a)
print(b)
m = b // 10
n = b % 10
print(f"{n * a}")
print(f"{m * a}")
end = a * b
print(f"{end}")
然后,我们可以改进乘法运算的部分。原始代码中,我们使用了多次的乘法运算,可以将其简化为一次乘法运算。具体操作如下:
a, b = input().split()
a = int(a)
b = int(b)
print(a)
print(b)
result = str(a * b)
length = len(result)
line = str(a * int(b[-1]))
print(line)
print(result[:-1].ljust(length, " "))
print(result)
这两种优化方案可以单独使用,也可以结合使用。可以根据个人需求选择使用哪种方案。
【相关推荐】