2324 - 乘法运算
从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
例如,输入:<span>89 13 </span>又如,输入:<span>16 8</span>
输出:<span> 89 </span>输出:<span> 16</span>
<u> </u><u>×<span> 13 </span></u> <u>×<span> 8 </span></u>
267 128
<u> 89 </u>
1157
<br />
Input
每个测试文件只包含一组测试数据,每组输入数据为两个100以内的正整数,之间由一个空格分隔。
Output
对于每组输入数据,输出两个整数进行乘法运算的竖式。为了简单起见,只需从上到下输出竖式里面的数即可,具体格式见样例输出。
Examples
Input
89 13
Output
89 13 267 89 1157
Hint
16 8
----------
16
8
128
Solution C
#include<stdio.h> int main() { int a,b,s,count,i,j,k; scanf("%d%d",&a,&b); printf("%d\n%d\n",a,b); count=0;s=1;i=1;j=0; while(b>0) { s=b%10; if(s==0) { k=a; while(k>0) { printf("0"); k=k/10; } printf("\n"); b=b/10;i=i*10;j++; } else { printf("%d\n",s*a); count+=s*a*i; b=b/10;i=i*10; j++; } } if(j!=1) printf("%d\n",count); printf("\n"); return 0; }
Solution C++
#include<stdio.h> int main() { int a,b,s,k,res; int len = 0; scanf("%d%d",&a,&b); char buf[10]; k = a; while(k>0) len++,k/=10; sprintf(buf,"%%0%dd\n",len); k = b; printf("%d\n%d\n",a,b); while(k>0) { s=k%10; printf(buf,s*a); k/=10; } if(b>=10) printf("%d\n",a*b); //printf("%d",5); return 0; }
Hint
16 8
----------
16
8
128