zoukankan      html  css  js  c++  java
  • 算法笔记_227:填写乘法算式(Java)

    目录

    1 问题描述

    2 解决方案

     


    1 问题描述

    观察下面的算式:

    * * × * * = * * *

    它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:

    所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。

    比如:13 x 15 = 195

    题目的任务是:编写程序,找到所有可能的情况。
    输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题。每行的格式如:
    13 x 15 = 195
    其中乘号用“x”表示。


    2 解决方案

     1 import java.util.ArrayList;
     2 
     3 public class Main {
     4     public static ArrayList<String> list = new ArrayList<String>();
     5     
     6     public static void main(String[] args) {
     7         for(int i = 11;i < 100;i++) {
     8             int i1 = i / 10, i2 = i % 10;
     9             if(i1 % 2 == 0 || i2 % 2 == 0)
    10                 continue;
    11             for(int j = 11;j < 100;j++) {
    12                 int j1 = j / 10, j2 = j % 10;
    13                 if(j1 % 2 == 0 || j2 % 2 == 0)
    14                     continue;
    15                 int result = i * j;
    16                 if(result >= 1000 || result < 100 || result % 2 == 0)
    17                     continue;
    18                 int a1 = result % 10;
    19                 int a2 = result / 10 % 10;
    20                 int a3 = result / 100;
    21                 if(a1 % 2 == 0 || a2 % 2 == 0 || a3 % 2 == 0)
    22                     continue;
    23                 StringBuffer s = new StringBuffer("");
    24                 s.append(i);
    25                 s.append("x");
    26                 s.append(j);
    27                 s.append(" = ");
    28                 s.append(result);
    29                 if(!list.contains(s.toString()))
    30                     list.add(s.toString());
    31             }
    32         }
    33         for(int i = 0;i < list.size();i++)
    34             System.out.println(list.get(i));
    35     }
    36 }

    运行结果:

    13x15 = 195
    13x55 = 715
    13x75 = 975
    15x13 = 195
    15x37 = 555
    15x53 = 795
    17x35 = 595
    17x55 = 935
    35x17 = 595
    37x15 = 555
    53x15 = 795
    55x13 = 715
    55x17 = 935
    75x13 = 975
  • 相关阅读:
    彻底弄懂三段式状态机
    关于verilog的有符号数与无符号数的转换
    关于win10系统安装vivado 2017.1 .2 .3 报runtime error 问题解决办法 亲测有效
    python的列表拷贝
    PYTHON
    保存linux下当前目录下所有文件的相对路径
    Git 命令及使用经验
    讯飞SDK的使用
    DE4加DVI子板实现静态图片显示
    HDL代码风格建议(2)乘法器和DSP推断
  • 原文地址:https://www.cnblogs.com/liuzhen1995/p/6896057.html
Copyright © 2011-2022 走看看