问题描述
编制一个乘法运算的程序。
从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
输入格式
输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。
输出格式
输出为4行或7行,符合乘法的竖式运算格式。
样例输入
89 13
样例输出
89
×13
━━━
267
89
━━━
1157
×13
━━━
267
89
━━━
1157
输入输出样例1解释
3×89=267,则第四行267右侧对准个位输出。1×89=89,则第五行89右侧对准十位输出。267+890=1157,则1157右侧对准个位输出。
样例输入
16 8
样例输出
16
× 8
━━━
128
× 8
━━━
128
输入输出样例2解释
8×16=128,则第四行128右侧对准个位输出。计算完成,不再输出。
代码::
package 蓝桥杯java算法训练; import java.util.Scanner; public class _5乘法运算 { public static void main(String[] args) { // 输入x,y // 1.先看y是1位还是两位 // 2.若y是1位,则直接按序输出,但是第二行输出y时,前面加一个空格 // 2.1看x*y结果,结果一定要留三位,结果为一位数字则补两个空格,结果为两位,补一 //个空格,结果为三位直接输出 // 3.若y是2位,则分成十位数字s和个位数字g,分别乘以x结果为sx,gx。看十位相乘的结果去 //判断到底有几个空格 // 3.1若sx为两位,则x和y不用加空格,最后乘积的结果为三位,不够补空格 // 3.2若sx为三位,输入的x前加一个空格,y前也加一个。结果为4位数字,不够补空格 Scanner scanner = new Scanner(System.in); int x = scanner.nextInt();//输入x,第一个乘数 int y = scanner.nextInt();//输入y,第二个乘数 //现在分为两种情况 y>=10和y<10 if (y >= 10) { //将y拆分了 int s = y/10;//十位数字 int g = y%10;//个位数字 //分别计算与x的乘积 int sx = s*x; int gx = g*x; //看十位与x的乘积的位数 if (sx >= 100) {//三位,前面补空格 System.out.println(" "+x); System.out.println(" ×"+y); System.out.println("━━━"); //现在要看个位数字和x相乘需要补几个0了 if (gx==0) { System.out.println(" 0"+gx); }else if (gx <10) { System.out.println(" "+gx);//补三个空格 }else if (gx <100) { System.out.println(" "+gx);//补两个空格 }else { System.out.println(" "+gx);//补一个空格 } System.out.println(sx); System.out.println("━━━"); int num = x*y; //看结果需要补全几个空格 if (num<10) { System.out.println(" "+num); }else if (num <100) { System.out.println(" "+num); }else if (num <1000) { System.out.println(" "+num); }else{ System.out.println(num); } }//sx>=100结束 else{//sx<100 System.out.println(x); System.out.println("×"+y); System.out.println("━━━"); if (gx==0) { System.out.println(" 0"+gx); }else if (gx<10) { System.out.println(" "+gx); }else if (gx<100) { System.out.println(" "+gx); }else { System.out.println(gx); } System.out.println(sx); System.out.println("━━━"); int num = x*y; if (num<10) { System.out.println(" "+num); }else if (num <100) { System.out.println(" "+num); }else{ System.out.println(num); } }//sx<100结束 }//y>=10结束 else{//y<10 System.out.println(x); System.out.println("× "+y); System.out.println("━━━"); int num = x*y; if (num<10) { System.out.println(" "+num); }else if (num<100) { System.out.println(" "+num); }else { System.out.println(num); } }//y<10结束 } }