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

常数变易法举例_常数变易法怎么想出来的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HDU 2254 奥运(数论+矩阵)

    HDU 2254 奥运(数论+矩阵)

    2022年1月28日
  • pytorch-DataLoader(数据迭代器)

    pytorch-DataLoader(数据迭代器)目录1.1dataset1.1.1Map-styledatasets实现方法一(简单直白法)实现方法二(借助TensorDataset直接将数据包装成dataset类)实现方法三(地址读取法)1.1.1Iterable-styledatasets我们一般使用一个for循环(或多层的)来训练神经网络,每一次迭代,加载一个batch的数据,神经网络前向反向传播各一次并更新一次参数。而这个过程中加载一个batch的数据这一步需要使用一个torch.utils.data.DataLoader对象,并且

    2022年6月11日
  • LTE-FDD和LTE-TDD的区别

    LTE-FDD和LTE-TDD的区别注:本篇大部分内容源自“再见理想”的博客园,详细链接:https://www.cnblogs.com/exmyth/p/4572934.html1.什么叫LET4G故名思议就是第四代移动电话行动通信标准,其中包括TD-LTE(国外称作LTE-TDD,叫法不同,意思是一样的)和FDD-LTE两种制式。而中移动使用的就是TD-LTE,中联通与中电信则是使用TD-LTE与FDD-LTE…

    2022年6月5日
  • sqlmap宽字节注入_sql注入orderby子句的功能

    sqlmap宽字节注入_sql注入orderby子句的功能AboutSQLInjection宽字节注入0x01前言对于SQL注入,我估计搞安全的都玩的滚瓜烂熟了,搞站什么的都是分分钟来的,但是之前做了一道宽字节注入的题目,又打开了我一扇通往新世界的大门(PS:早都碰到过,只不过一直没有时间写)。0x02宽字节和mysql单字节字符集:所有的字符都使用一个字节来表示,比如ASCII编码。多字节字符集:在多字节字符集中,一部分字节用多个字节来…

    2022年10月14日
  • 模拟视频的接头的端口_网络摄像头改模拟接口

    模拟视频的接头的端口_网络摄像头改模拟接口这些接口均传输模拟信号一、CVBS(RCA接口)RCA接口是最简单、最原始的视频接口,也称做复合视频信号(CVBS)接口。他传输的是复合视频信号,传输介面是一根普通的视频线。一般由红、黄、白三色组成,黄色的为视频信号,白色的为左声道音频信号,红色的为右声道音频信号。注:RCA输入输出是车载功放最主要的音频输入和输出接口,当然还有其他接线柱等接口。车载功放…

    2022年10月31日
  • 【Custom Mutator Fuzz】Libprotobuf + AFLapp Custom Mutator[通俗易懂]

    【Custom Mutator Fuzz】Libprotobuf + AFLapp Custom Mutator[通俗易懂]这篇文章主要是在libprotobuf-mutator_fuzzing_learning开源模糊测试练习项目第4个练习的基础上进行详细讲解,主要内容为通过libprotobuf-mutator为AFL++提供自定义protobuf结构突变。练习和写作的过程中也是踩了不少的坑,文章末尾会有我遇到的全部问题及解决办法

    2022年9月13日

发表回复

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

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