陈正磊


私信TA

用户名:RossTran

访问量:14973

签 名:

晨兴理荒秽,带月荷锄归。

等  级
排  名 178
经  验 6828
参赛次数 15
文章发表 34
年  龄 0
在职情况 学生
学  校 湖北生物科技职业学院
专  业

  自我简介:

思路:

思路.jpg

正确代码:

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int grid[][]=new int[7][4];
		int a=sc.nextInt();
		int b=sc.nextInt();
		for (int i = 0; i =10 && grid[1][2]==0) {
					grid[i][2]=0;
				}
				continue;
			}
			if (i==4) {//第五行
				if (grid[1][1]==-1) {
					continue;
				}
				int mul=grid[1][1]*a;//十位与a相乘
				grid[i]=right(mul, 1);
			}
			if (i==5) {//第六行 9473='-'
				if (grid[i][1]==-1) {
					continue;
				}
				grid[i][3]=-1;
				grid[i][2]=9473;
				grid[i][1]=9473;
				grid[i][0]=9473;
			}
			if (i==6) {//第七行
				if (grid[i][1]==-1) {
					continue;
				}
				grid[i]=right(a*b, 0);
			}
		}
		//输出
		for (int i = 0; i <7; i++) {
			if (i==4 && grid[1][1]==-1) {//输出到第五行时,如果b的十位没有数,则结束输出
				break;
			}
			for (int j = 0; j =0; i--,m--) {
			row[i]=Integer.parseInt(strN.charAt(m)+"");
		}
		return row;
	}
}

--------------------------------

题目说以竖式运算格式输出,题目中的例子格式明显不对。应该是这样的

竖式乘法格式.jpg

我觉得下图右边的才对。


QQ截图20200910120422.jpg

输出上图右边结果的代码如下:

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int grid[][]=new int[7][4];
		int a=sc.nextInt();
		int b=sc.nextInt();
		for (int i = 0; i =10 && grid[1][3]==0) {
					grid[i][2]=0;
				}
				continue;
			}
			if (i==4) {//第五行
				if (grid[1][2]==-1) {
					continue;
				}
				int mul=grid[1][2]*a;//十位与a相乘
				grid[i]=right(mul, 1);
			}
			if (i==5) {//第六行 9473='-'
				if (grid[i][2]==-1) {
					continue;
				}
				Arrays.fill(grid[i], 9473);
			}
			if (i==6) {//第七行
				if (grid[i][2]==-1) {
					continue;
				}
				grid[i]=right(a*b, 0);
			}
		}
		//输出
		for (int i = 0; i <7; i++) {
			if (i==4 && grid[1][2]==-1) {//输出到第五行时,如果b的十位没有数,则结束输出
				break;
			}
			for (int j = 0; j =0; i--,m--) {
			row[i]=Integer.parseInt(strN.charAt(m)+"");
		}
		return row;
	}
}



还有一种更简便的方法。System.out.printf() 可以使输出右对齐,可以设置偏移的位数,十分强大。


import java.util.Scanner;


public class 测试 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		int b=sc.nextInt();
		System.out.printf("%4d\n",a);
		System.out.printf("%s%2d\n","×",b);
		System.out.println("━━━");
		if (a>=10 && b%10==0) {//第四行
			System.out.printf("%4s\n","00");
		}else {
			System.out.printf("%4d\n",a*(b%10));
		}
		if (b>=10) {//第五行
			System.out.printf("%3d\n",a*(b/10));
			System.out.println("━━━");//第六行
			System.out.printf("%4d\n",a*b);//第七行
		}
		
		
}
}
		
		
		
	


 

0.0分

2 人评分

  评论区

  • «
  • »