问题描述
  编制一个乘法运算的程序。
  从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
输入格式
  输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。
输出格式
  输出为4行或7行,符合乘法的竖式运算格式。
样例输入
89 13
样例输出
×13
━━━

━━━

输入输出样例1解释
  3×89=267,则第四行267右侧对准个位输出。1×89=89,则第五行89右侧对准十位输出。267+890=1157,则1157右侧对准个位输出。
样例输入
16 8
样例输出
× 8
━━━
输入输出样例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结束 }
}

 

java算法 蓝桥杯 乘法运算的更多相关文章

  1. java算法 蓝桥杯 扶老奶奶街

    一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中 ...

  2. java算法 蓝桥杯 高精度加法

    问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263.要想计算更加规模的数,就要用软件来扩展了,比如用数组或 ...

  3. java算法 蓝桥杯 格子位置

    问题描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行.同列.同一对角线的所有格子的位置. 输入格式 输入共三 ...

  4. java算法 蓝桥杯 文化之旅

    问题描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能有相同的文化.不同文化 ...

  5. java算法 蓝桥杯 摆花

    问题描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  6. java算法 蓝桥杯 洗牌

    问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要自己洗牌,自己就一定会输.所以小弱T认为自己洗牌不够均匀,就独 ...

  7. java算法 蓝桥杯(题+答案) 压缩变换

    10.压缩变换  (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...

  8. java算法 蓝桥杯算法训练 Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  9. java算法 蓝桥杯(题+答案) 方格填数

    6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...

随机推荐

  1. Git 常用命令汇总

    #安装git yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y g ...

  2. PAT (Advanced Level) 1085. Perfect Sequence (25)

    可以用双指针(尺取法),也可以枚举起点,二分终点. #include<cstdio> #include<cstring> #include<cmath> #incl ...

  3. [算法] avl树实现

    大二的时候数据结构课死活没看懂的一个东东,看了2小时,敲了2小时,调了2小时... 平衡树某一节点的左右子树高度相差大于1的时候即需要调整,调整可分为四中情况 ll,rr,lr,rl其中lr,rl是由 ...

  4. apache虚拟目录设置

    <VirtualHost *:80> DocumentRoot "/xampp/htdocs/f" ServerName f.e-elitech.net</Vir ...

  5. pthread_join

    摘要:pthread_join使一个线程等待另一个线程束. 代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了.加入pthread_jo ...

  6. WEB前端资源集(一)

    做前端已经一年了,开发中换过很多开发工具,遇到bug到处求解,以及自学时到处找相关文章及教程,所以经过这么多的风波,我总结了一些对大家有帮助的网站,主题也将长期更新. 资源网站篇 CSDN:全球最大中 ...

  7. SVN参考命令

    SVN 命令参考(svn command reference) 用法: svn <subcommand> [options] [args]Subversion 命令行客户端,版本 1.6. ...

  8. VC#2010 视图设计器无法打开 问题的正解

    继上次VC#2010中视图设计器无法打开的问题的讨论后,我感觉每次都重新安装一次安装包未免也太麻烦了,程序员的时间都灰常宝贵. 所以在这次人工智能作业的时候,找到了一个简单的途径: 打开VC#2010 ...

  9. (中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。

    Description This is a very easy problem, your task is just calculate el camino mas corto en un grafi ...

  10. Java对文件的16进制读取和操作

    大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序.有几个重点地方: 16进制字符串->10进制数 int input = Integer.parseInt("Str ...