常数变易法举例_常数变易法怎么想出来的

常数变易法举例_常数变易法怎么想出来的1.4常数变易法常数变异的思考方法当程序中有许多因素都在变动的时候,我们可以假设其中的某些变数为常数,把他们写成固定的死值。将来再用变量替换。星号金字塔常数变异典型应用 打印这个金字塔:             *            **           ***           ****          **

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1.4常数变易法

常数变异的思考方法

当程序中有许多因素都在变动的时候,我们可以假设其中的某些变数为常数,把他们写成固定的死值。

将来再用变量替换。

星号金字塔

常数变异典型应用

 

打印这个金字塔:

              *

              * *

             * * *

            * * * *

           * * * * *

正常的思路:两层嵌套循环。

/*
           *
          * *
         * * *
        * * * *
       * * * * *
*/
package ConstantChange;
 
public class PrintPyramid {
    public static void main(String[] args) {
       /*System.out.println("          *");
       System.out.println("        * *");
       System.out.println("       * * *");
//     System.out.println("     * * * *");
//     System.out.println("     * * * * *");
      
       for(int i=0;i<17;i++){
           System.out.print(" ");
       }
       for(int i=0;i<4;i++){
           System.out.print("* ");
       }
       System.out.println();
      
       for(int i=0;i<16;i++){
           System.out.print(" ");
       }
       for(int i=0;i<5;i++){
           System.out.print("* ");
       }
       System.out.println();*/
      
       //尝试写双层循环,代替上述的这种写5次的三行循环。
       //k  0  1  2  3  4   【k】
       //? 20 19 18 17 16 【20-k】
       //?? 1  2  3  4  5   【k+1】
       for(int k=0;k<5;k++){
           for(int i=0;i<20-k;i++){
              System.out.print(" ");
           }
           for(int i=0;i<k+1;i++){
              System.out.print("* ");
           }
           System.out.println();
       }
    }
}

Jetbrains全家桶1年46,售后保障稳定

                    *
                   * *
                  * * *
                 * * * *
                * * * * *


字母金字塔

 

        A

       ABA

      ABCBA

     ABCDCBA

    ABCDEDCBA

/*
        A
       ABA
      ABCBA
     ABCDCBA
    ABCDEDCBA
   
*/
package ConstantChange;
 
public class LetterPyramid {
    public static void main(String[] args) {
/*//       "     ABCDCBA"
       for(int i=0;i<5;i++){
           System.out.print(" ");
       }
       for(int i=0;i<4;i++){
//         System.out.print('A');//常数变异法,这里本应是变动的,先用常数代替
           System.out.print((char)('A'+i));//输出ABCDE,强制转换ASCII码
       }
       for(int i=3-1;i>=0;i--){
           System.out.print((char)('A'+i));
       }
       System.out.println();
//     "    ABCDEDCBA"
       for(int i=0;i<4;i++){
           System.out.print(" ");
       }
       for(int i=0;i<5;i++){
//         System.out.print('A');//常数变异法,这里本应是变动的,先用常数代替
           System.out.print((char)('A'+i));//输出ABCDE,强制转换ASCII码
       }
       for(int i=4-1;i>=0;i--){
           System.out.print((char)('A'+i));
       }
       System.out.println();*/
      
       //k   
       //?    9-k
       //??   k
       //???  k-2
        for(int k=1;k<5;k++){
           for(int i=0;i<9-k;i++){
              System.out.print(" ");
           }
           for(int i=0;i<k;i++){
              System.out.print((char)('A'+i));//输出ABCDE,强制转换ASCII码
           }
           for(int i=k-2;i>=0;i--){
              System.out.print((char)('A'+i));
           }
           System.out.println();
       }
      
    }
}
        A
       ABA
      ABCBA
     ABCDCBA


当变成逐渐熟练之后,常数变异法可能是我们最常用的方法。

打印图形X

 

试打印出如下图形:

 

 $$         $$

 $$        $$

  $$      $$

   $$    $$   

     $$ $$    

      $$$$   

       $$      

      $$$$   

     $$ $$     

   $$    $$  

  $$      $$ 

 $$        $$

 $$         $$

 

 

注意规模可以调整

/*
 * 打印图形
 
试打印出如下图形:
 
 $$          $$
  $$        $$
   $$      $$
    $$    $$   
     $$  $$    
      $$$$   
       $$      
      $$$$   
     $$  $$    
    $$    $$  
   $$      $$ 
  $$        $$
 $$          $$
 
 
注意规模可以调整
*/
package ConstantChange;
 
public class PrintX {
    public static void main(String[] args) {
       /*//" $$          $$ "
       for(int i=0;i<1;i++) System.out.print(" ");
       for(int i=0;i<2;i++) System.out.print("$");
       for(int i=0;i<10;i++) System.out.print(" ");
       for(int i=0;i<2;i++) System.out.print("$");
       for(int i=0;i<1;i++) System.out.print(" ");
       System.out.println();
       //"  $$        $$  "
       for(int i=0;i<2;i++) System.out.print(" ");
       for(int i=0;i<2;i++) System.out.print("$");
       for(int i=0;i<8;i++) System.out.print(" ");
       for(int i=0;i<2;i++) System.out.print("$");
       for(int i=0;i<2;i++) System.out.print(" ");
       System.out.println();*/
      
      
       int LINE = 13;//由于图形的对称性,输入偶数行时,做出的图形+1行
       int n = LINE/2;
      
       for(int k=0;k<n;k++){
           for(int i=0;i<k+1;i++) System.out.print(" ");
           System.out.print("$$");
           for(int i=0;i<LINE-3-2*k;i++) System.out.print(" ");
           System.out.print("$$");
           for(int i=0;i<k+1;i++) System.out.print(" ");
           System.out.println();
       }
      
       for(int i=0;i<n+1;i++) System.out.print(" ");
       System.out.print("$$");
       for(int i=0;i<n+1;i++) System.out.print(" ");
       System.out.println();
      
       for(int k=n-1;k>=0;k--){
           for(int i=0;i<k+1;i++) System.out.print(" ");
           System.out.print("$$");
           for(int i=0;i<LINE-3-2*k;i++) System.out.print(" ");
           System.out.print("$$");
           for(int i=0;i<k+1;i++) System.out.print(" ");
           System.out.println();
       }
    }
}
 $$          $$
  $$        $$ 
   $$      $$  
    $$    $$    
     $$  $$    
      $$$$     
       $$      
      $$$$     
     $$  $$    
    $$    $$   
   $$      $$  
  $$        $$ 
 $$          $$

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序即时通讯聊天控件(一)

    小程序即时通讯聊天控件(一)小程序即时通讯——文本、语音输入控件(一)集成近期一直在做微信小程序,业务上要求在小程序里实现即时通讯的功能。这部分功能需要用到文本和语音输入及一些语音相关的手势操作。所以我写了一个控件来处理这些操作。控件样式我们先来看下效果目前的功能就是动态图中展示的,我们可以使用这个控件来切换输入方式(文本或语音)、获取到输入的信息、取消语音输入、语音消息录制过短过长的判断(该接口暂时还未开放),支持发送图片和

    2022年5月14日
    48
  • 手撕包菜_handlecpuacceleration

    手撕包菜_handlecpuaccelerationLinkedHashSet能够维护元素插入集合的顺序,在遍历时,按照此顺序进行遍历。LinkedHashSet继承了HashSet类,实现了Set等接口。LinkedHashSet仍然支持null元素,唯一有所区别的是在迭代时,它能够按照元素的插入顺序遍历。LinkedHashSet的实现非常简单,它仅仅只重新实现了构造方法,将HashSet内部维护的HashMap…

    2022年10月12日
    0
  • 驱动开发利器Microsoft Windows Driver Kit 7.1.0下载

    在Windows2000与WindowsXP系统采用是WINDDK来开发WINDOWS驱动程序,我手头也有WINDDK,可是从WindowsVista开始之后,一般采用MicrosoftW

    2021年12月26日
    60
  • RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)

    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)

    2021年11月17日
    51
  • atof函数_log函数怎么比较大小

    atof函数_log函数怎么比较大小atof函数原型doubleatof(constchar*str);作用:将字符串转换为双精度浮点数(double).头文件:#include&lt;stdlib.h&gt;返回值: 返回转换后的浮点数,如果字符串str不能被转换为double,那么返回0.0函数说明:atof()会扫描茶树str字符串,跳过前面的空格字符,直到遇到数字或者正…

    2022年10月22日
    0
  • 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算

    圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算各位家长好,我是家长无忧(jiazhang51.cn)专栏作者,七玥老师全文共计767字,建议阅读2分钟圆柱体是由2个底边和一个侧边构成的。在同一个平面图内有一条定平行线和一条功能分区,当这一平面图绕着这条定平行线转动一周时,这条功能分区所成的面称为转动面,这条定平行线称为转动面的轴,这条功能分区称为转动面的母线槽。圆柱体的界定1、旋转定义法:一个长方形以一边为轴顺时针方向或反方向转动一周,所历经…

    2022年9月20日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号