注册 登录
编程论坛 JAVA论坛

大佬们帮我看下这个题怎么做

丶随风飘扬 发布于 2020-03-01 11:10, 2682 次点击
        1、九九乘法表

问题描述:

    见如下九九乘法表,每个乘法的宽度为9个字符。

1*1=1   

1*2=2    2*2=4   

1*3=3    2*3=6    3*3=9   

1*4=4    2*4=8    3*4=12   4*4=16   

1*5=5    2*5=10   3*5=15   4*5=20   5*5=25   

1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36   

1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49   

1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64   

1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81   



输入要求:   

   

    第1行输入1个正整数T(1<=T<=100),表示有T组测试数据。

    每组测试数据输入占1行,为三个整数M(1<=M<=5), I(1<=I<=9), J(I<=J<=9)。



输出要求:

    对于每组测试数据:

    1、若M=1,输出I*J的结果。

    2、若M=2,输出九九表中I*J这个乘法的表示(宽度为9个字符)。

    3、若M=3,输出九九表中I*J所在行的左边各项。

    4、若M=4,输出九九表中I*J所在列的下边各项。

    5、若M=5,输出九九表的第J行,I列为右下角的子乘法表。

6 回复
#2
xianfajushi2020-03-01 12:52
程序代码:


    for (int i = 1; i <= 9; i++)

    {

        for (int j = 1; j <= i; j++)

            cout << i << "*" << j << "=" << i*j << " ";

        cout << endl;

    }


只有本站会员才能查看附件,请 登录
#3
林月儿2020-03-01 14:01
程序代码:
package com.test;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Test0301 {
    static final String menuInfo = "\n1、若M=1,输出I*J的结果。"+
            "\n2、若M=2,输出九九表中I*J这个乘法的表示(宽度为9个字符)。"+
            "\n3、若M=3,输出九九表中I*J所在行的左边各项。"+
            "\n4、若M=4,输出九九表中I*J所在列的下边各项。"+
            "\n5、若M=5,输出九九表的第J行,I列为右下角的子乘法表。\n"+
            "\n第1行输入1个正整数T(1<=T<=100),表示有T组测试数据。" +
            "\n每组测试数据输入占1行,为三个整数M(1<=M<=5), I(1<=I<=9), J(I<=J<=9)";
    static int type = 0;
    static boolean flag = false;
    public static void main(String[] args) {
        JFrame jframe = new JFrame();
        JScrollPane mainPan = new JScrollPane();
        jframe.add(mainPan, BorderLayout.CENTER);
        JTextField txtField = new JTextField();
        txtField.setFont(new Font("gbk", Font.BOLD, 22));
        jframe.add(txtField, BorderLayout.SOUTH);
        jframe.setSize(800, 600);
        jframe.setVisible(true);
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextArea txtArea = new JTextArea();
        mainPan.setViewportView(txtArea);
        StringBuilder sb = new StringBuilder("\n");
        for (int i = 1; i <= 100; i++) {
            sb.append("-");
        }
        sb.append("\n");
        for (int i = 1; i <= 9; i++) {
            for (int j=1; j <= i; j++) {
                sb.append(j + "*" + i + "=" + i * j);
                sb.append("\t");
            }
            sb.append("\n");
        }
        txtArea.append(sb.toString());
        txtArea.append(menuInfo);
        txtField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    String str = txtField.getText();
                    txtField.setText("");
                    txtArea.append("\n"+str);
                    if (type == 0) {
                        type = Integer.valueOf(str);
                    } else if(type > 0){
                        handle(str.split(" "), txtArea);
                        type--;
                    }
                    if(type == 0) {
                        txtArea.append(sb.toString());
                        txtArea.append(menuInfo);
                    } else {
                        txtArea.append("\n剩余输入测试数据次数:"+type);
                    }
                }
            }
        });
    }
     static void handle(String[] choice, JTextArea txtArea) {
         if (choice.length < 3) {
             txtArea.append("\n输入有误,请输入三个参数!");
             type++;
             return;
         }
         int ele0 = Integer.valueOf(choice[1]);
         int ele1 = Integer.valueOf(choice[2]);
         if("1".equals(choice[0])) {
             txtArea.append("\n" + ele0 * ele1);
         } else if("2".equals(choice[0])) {
             txtArea.append("\n" + ele0 + "*" + ele1 + "=" +ele0 * ele1);
         } else if("3".equals(choice[0])) {
             txtArea.append("\n");
             for (int i = 1; i < ele0; i++) {
                 txtArea.append(i + "*" + ele1 + "=" + i * ele1 + "\t");
             }
         } else if("4".equals(choice[0])) {
             txtArea.append("\n");
             for (int i = ele1 + 1; i <= 9; i++) {
                 txtArea.append(ele0 + "*" + i + "=" + ele0 * i + "\t");
             }
         } else if("5".equals(choice[0])) {
             for (int i = ele1 + 1; i <= 9; i++) {
                 txtArea.append("\n");
                 for (int j = ele0 + 1; j <= i; j++) {
                     txtArea.append(j + "*" + i + "=" + i * j + "\t");
                 }
             }
         }
     }
}

只有本站会员才能查看附件,请 登录
#4
丶随风飘扬2020-03-01 15:39
回复 2楼 xianfajushi
你看错题了,大佬,不是要写9*9乘法表
#5
丶随风飘扬2020-03-01 16:45
回复 3楼 林月儿
大佬,我相信你是对的,但我初学,看不太懂你的代码,不过还是谢谢你为我解答。
还有下面这些都是什么意思呀。
程序代码:
  JFrame jframe = new JFrame();
        JScrollPane mainPan = new JScrollPane();
        jframe.add(mainPan, BorderLayout.CENTER);
        JTextField txtField = new JTextField();
        txtField.setFont(new Font("gbk", Font.BOLD, 22));
        jframe.add(txtField, BorderLayout.SOUTH);
        jframe.setSize(800, 600);
        jframe.setVisible(true);
        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextArea txtArea = new JTextArea();
        mainPan.setViewportView(txtArea);
        StringBuilder sb = new StringBuilder("\n");

我自己也写了出来,这是我的代码。
程序代码:

import java.util.Scanner;

public class HelloWorld {

    public static void main(String[] args) {
//        // TODO Auto-generated method stub
        Scanner in= new Scanner(System.in);
        int s=0,T,M,I,J,K;
        T=in.nextInt();
        while(s<T)
        {
            M=in.nextInt();
            I=in.nextInt();
            J=in.nextInt();
            if(M==1)
                System.out.print((I*J));
            else if(M==2)
                System.out.print(I + "*" + J + "=" + (I*J));
            else if(M==3)
                for(K=1;K<I;K++)
                    System.out.print(K + "*" + J + "=" + (K*J) + "\t");
            else if(M==4)
                for(K=J+1;K<=9;K++)
                    System.out.print(I + "*" + K + "=" + (I*K) + "\t");
            else if(M==5)
            {
                I++;J++;
                for(;J<=9;J++) {
                    for(K=I;K<=J;K++)
                        System.out.print(K + "*" + J + "=" + (K*J) + "\t");
                        System.out.println();
                        
                }
            }
            s++;
        }
    }}
#6
林月儿2020-03-01 17:10
就是整个弹窗,上面是显示板,下面是输入框
输入回车后,显示板会更新信息
#7
w25895235722020-04-05 12:10
public static void main(String[] args) {
        // TODO Auto-generated method stub
             int a,b;
             int c ;
             for(a=1;a<=9;a++)
             {
                for(b=1;b<=a;b++)
                {
                     c=a*b;
                    System.out.print(b+"*"+a+"="+c+"        ");
                    
                    
                }
                 
                System.out.println();
             }
            
    }
1