循环嵌套

打印乘法口诀

  1. for(int j=1;j<=9;j++){
  2. for(int i=1;i<=j;i++){
  3. System.out.print(i+"*"+j+"="+i*j+"\t");
  4. }
  5. //换行
  6. System.out.println();
  7. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

倒乘法口诀

  1. for(int j=9;j>=1;j--){
  2. for(int i=1;i<=j;i++){
  3. System.out.print(i+"*"+j+"="+i*j+"\t");
  4. }
  5. //换行
  6. System.out.println();
  7. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

打印长方形

  1. for(int j=1;j<=4;j++){//j:控制行数
  2. //*********
  3. for(int i=1;i<=9;i++){//i:控制*的个数
  4. System.out.print("*");
  5. }
  6. //换行:
  7. System.out.println();
  8. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

距离前面有一定空隙的长方形:

  1. for(int j=1;j<=4;j++){//j:控制行数
  2. //加入空格:
  3. for(int i=1;i<=(9-j);i++){//i:控制空格的个数
  4. System.out.print(" ");
  5. }
  6. //*********
  7. for(int i=1;i<=9;i++){//i:控制*的个数
  8. System.out.print("*");
  9. }
  10. //换行:
  11. System.out.println();
  12. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

平行四边形

  1. for(int j=1;j<=4;j++){//j:控制行数
  2. //加入空格:
  3. for(int i=1;i<=(9-j);i++){//i:控制空格的个数
  4. System.out.print(" ");
  5. }
  6. //*********
  7. for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
  8. System.out.print("*");
  9. }
  10. //换行:
  11. System.out.println();
  12. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

打印三角形

  1. for(int j=1;j<=4;j++){//j:控制行数
  2. //加入空格:
  3. for(int i=1;i<=(9-j);i++){//i:控制空格的个数
  4. System.out.print(" ");
  5. }
  6. //*********
  7. for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
  8. System.out.print("*");
  9. }
  10. //换行:
  11. System.out.println();
  12. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

打印菱形

可以看成两个三角形拼成一个菱形

  1. //上面三角形:
  2. for(int j=1;j<=4;j++){//j:控制行数
  3. //加入空格:
  4. for(int i=1;i<=(9-j);i++){//i:控制空格的个数
  5. System.out.print(" ");
  6. }
  7. //*********
  8. for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
  9. System.out.print("*");
  10. }
  11. //换行:
  12. System.out.println();
  13. }
  14. //下面三角形:
  15. for(int j=1;j<=3;j++){//j:控制行数
  16. //加入空格:
  17. for(int i=1;i<=(j+5);i++){//i:控制空格的个数
  18. System.out.print(" ");
  19. }
  20. //*********
  21. for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
  22. System.out.print("*");
  23. }
  24. //换行:
  25. System.out.println();
  26. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

打印空心菱形

  1. //上面三角形:
  2. for(int j=1;j<=4;j++){//j:控制行数
  3. //加入空格:
  4. for(int i=1;i<=(9-j);i++){//i:控制空格的个数
  5. System.out.print(" ");
  6. }
  7. //*********
  8. for(int i=1;i<=(2*j-1);i++){//i:控制*的个数
  9. if(i==1||i==(2*j-1)){
  10. System.out.print("*");
  11. }else{
  12. System.out.print(" ");
  13. }
  14. }
  15. //换行:
  16. System.out.println();
  17. }
  18. //下面三角形:
  19. for(int j=1;j<=3;j++){//j:控制行数
  20. //加入空格:
  21. for(int i=1;i<=(j+5);i++){//i:控制空格的个数
  22. System.out.print(" ");
  23. }
  24. //*********
  25. for(int i=1;i<=(7-2*j);i++){//i:控制*的个数
  26. if(i==1||i==(7-2*j)){
  27. System.out.print("*");
  28. }else{
  29. System.out.print(" ");
  30. }
  31. }
  32. //换行:
  33. System.out.println();
  34. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

进阶打印菱形和空心菱形(换一种思路)

菱形

可以把菱形看成一个正方形,在相应位置打空,在相应位置打*

  1. public class TestFor14{
  2. public static void main(String[] args){
  3. //先打印出一个正方形,然后某些位置上打印* 某些位置上打印空格:
  4. int size = 17;
  5. int startNum = size/2+1;//起始列号
  6. int endNum = size/2+1;//结束列号
  7. //引入一个布尔类型的变量---》理解为“开关”
  8. boolean flag = true;
  9. for(int j=1;j<=size;j++){
  10. //*****
  11. for(int i=1;i<=size;i++){
  12. if(i>=startNum&&i<=endNum){
  13. System.out.print("*");
  14. }else{
  15. System.out.print(" ");
  16. }
  17. }
  18. //换行
  19. System.out.println();
  20. if(endNum==size){
  21. flag = false;
  22. }
  23. if(flag){//flag是true相当于在菱形的上半侧 flag是false相当于在菱形的下半侧
  24. startNum--;
  25. endNum++;
  26. }else{
  27. startNum++;
  28. endNum--;
  29. }
  30. }
  31. }
  32. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

空心菱形

  1. public class TestFor14{
  2. public static void main(String[] args){
  3. //先打印出一个正方形,然后某些位置上打印* 某些位置上打印空格:
  4. int size = 17;
  5. int startNum = size/2+1;//起始列号
  6. int endNum = size/2+1;//结束列号
  7. //引入一个布尔类型的变量---》理解为“开关”
  8. boolean flag = true;
  9. for(int j=1;j<=size;j++){
  10. //*****
  11. for(int i=1;i<=size;i++){
  12. if(i==startNum||i==endNum){//和实心菱形只有这行不一样
  13. System.out.print("*");
  14. }else{
  15. System.out.print(" ");
  16. }
  17. }
  18. //换行
  19. System.out.println();
  20. if(endNum==size){
  21. flag = false;
  22. }
  23. if(flag){//flag是true相当于在菱形的上半侧 flag是false相当于在菱形的下半侧
  24. startNum--;
  25. endNum++;
  26. }else{
  27. startNum++;
  28. endNum--;
  29. }
  30. }
  31. }
  32. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

计算二元一次方程组

1<=a<=5
3<=b<=6
求出a+b=7中a和b的所有可能性

  1. public static void main(String[] args){
  2. for(int a=1;a<=5;a++){
  3. for(int b=3;b<=6;b++){
  4. if(a+b==7){
  5. System.out.println(a+"----"+b);
  6. }
  7. }
  8. }
  9. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三元一次方程组

百钱买白鸟

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

  1. 数学:
  2. 设未知数:
  3. 公鸡:x
  4. 母鸡:y
  5. 小鸡:z
  6. x+y+z=100
  7. 5x+3y+z/3=100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方式1(比较麻烦)

  1. for(int x=1;x<=100;x++){
  2. for(int y=1;y<=100;y++){
  3. for(int z=1;z<=100;z++){
  4. if((x+y+z==100)&&(5*x+3*y+z/3==100)&&(z%3==0)){
  5. System.out.println(x+"\t"+y+"\t"+z);
  6. }
  7. }
  8. }
  9. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

方式2(优化)

100文做多买公鸡19只,母鸡31只,小鸡100-公鸡-母鸡

  1. for(int x=1;x<=19;x++){
  2. for(int y=1;y<=31;y++){
  3. int z = 100-x-y;
  4. if((5*x+3*y+z/3==100)&&(z%3==0)){
  5. System.out.println(x+"\t"+y+"\t"+z);
  6. }
  7. }
  8. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

有不懂的地方可以私信~

内容来源于马士兵教育赵姗姗老师的Java笔记。

原文章:https://blog.csdn.net/qq_44173324/article/details/112093354

Java基础_循环嵌套_打印乘法口诀、菱形,各种图形,计算二元一次和三元一次方程组_7的更多相关文章

  1. Java基础知识强化07:打印出空心菱形

    1.如图打印出空心菱形: 2.下面是逻辑实现代码: package himi.hebao04; import java.util.Scanner; public class TestDemo08 { ...

  2. 例题:打印乘法口诀。可能大家一看有点难,但只要理解for 循环嵌套,两层循环,外层循环行数,里层循环列数,搞清楚行数和列数之间的关系,就可以轻松做出这道题

    namespace 打印乘法口诀{    class Program    {        static void Main(string[] args)        {            f ...

  3. Java基础-集合的嵌套

    Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...

  4. C语言基础练习——打印乘法口诀表

    C语言基础练习--打印乘法口诀表 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 16 ...

  5. Java基础-IO流对象之打印流(PrintStream与PrintWriter)

    Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...

  6. Python打印乘法口诀表

    思路:第一行:1*1,第二行:1*2.,2*2,第三行:1*3,2*3,3*3-- 最后一行:1*9,2*9,3*9,-9*9,以此类推,可以设2个数:i,j:让 i 从1循环到9,让 j 从1到小于 ...

  7. php打印乘法口诀表

    <?php $n=9; //动态控制乘法口诀表的行数 echo"<table>"; //外层循环控制行数 for($i=1;$i<=$n;$i++){ // ...

  8. 【Python】【demo实验2】【打印乘法口诀表】

    打印乘法口诀表 源代码: # encoding=utf-8 for i in range(1,10): print("\n") for j in range(1,10): if i ...

  9. Java 简单算法--打印乘法口诀(只使用一次循环)

    package cn.magicdu.algorithm; /** * 九九乘法口诀表 * * @author xiaoduc * */ public class NineNineMulitTable ...

随机推荐

  1. 将HTML字符串编译为虚拟DOM对象的基础实现

    本文所有代码均保存在HouyunCheng / mini-2vdom 虚拟DOM只是实现MVVM的一种方案,或者说是视图更新的一种策略,是实现最小化更新的diff算法的操作对象. 创建扫描器 所有编译 ...

  2. RxJava线程控制

    RxJava中的线程转换主要通过下面两个方法: 1.subscribeOn 2.observeOn 一.subscribeOn 1.调用一次subscribeOn时: Observable obser ...

  3. 【vue-08】vuex

    vuex的作用 简单理解,就是将多个组件共享的变量统一放到一个地方去管理,比如用户登录时的数据token. 快速上手 安装:npm install vuex 首先,我们在src文件夹下创建一个文件夹: ...

  4. android 文件存储&SharedPreferences

    一.文件存储 文件存储主要是I/O流的操作,没什么好说的,需要注意的是保存文件的各个目录. 下面为常用的目录: public static File getInFileDir(Context cont ...

  5. 使用 IPMI 远程为服务器安装操作系统教程

    使用 IPMI 远程为服务器安装操作系统教程 shida_csdn 2019-01-09 11:30:10 9588 收藏 16展开一.什么是 IPMI? IPMI 是智能平台管理接口(Intelli ...

  6. rpm包名详解-rpm命令使用方法

    linux软件包管理-rpm mount # 挂载 1.将光盘镜像插入光驱 2.创建挂载目录 mkdir /guangqu 3.挂载到/guangqu [root@gong ~]# mount /de ...

  7. Linux进阶之TCP三次握手四次挥手

    TCP(Transfer control protocol)传输控制协议 一.两种传输模式: TCP面向有连接 可靠 常用于点对点 微信 UDP面向无连接 高速 常用于点对面 直播 二.数据方向: 在 ...

  8. KEIL下目标程序配置生成BIN文件

    圈中地址:E:\Program Files\keil4arm\ARM\ARMCC\bin\fromelf.exe --bin -o ..\OBJBIN\LY2030.BIN ..\obj\LY2052 ...

  9. linux中级之防火墙的数据传输过程

    网络数据传输过程 netfilter在数据包必须经过且可以读取规则的位置,共设有5个控制关卡.这5个关卡处的检查规则分别放在5个规则链中(有的叫钩子函数(hook functions).也就是说5条链 ...

  10. nginx反向代理网站镜像

    某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题.比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作. ...