• java算法 蓝桥杯 乘法运算


    问题描述
      编制一个乘法运算的程序。
      从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
    输入格式
      输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。
    输出格式
      输出为4行或7行,符合乘法的竖式运算格式。
    样例输入
    89 13
    样例输出
    89
    ×13
    ━━━
    267
    89
    ━━━
    1157
    输入输出样例1解释
      3×89=267,则第四行267右侧对准个位输出。1×89=89,则第五行89右侧对准十位输出。267+890=1157,则1157右侧对准个位输出。
    样例输入
    16 8
    样例输出
    16
    × 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结束
    	   
       }
    }
    

     

  • 相关阅读:
    每日日报46
    每日日报45
    每日日报44
    每日日报43
    每日日报42
    每日日报41
    每日日报40
    每日日报之一周总结
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/zhangxue521/p/6323352.html
Copyright © 2020-2023  润新知