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

常数变易法举例_常数变易法怎么想出来的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();
       }
    }
}
 $$          $$
  $$        $$ 
   $$      $$  
    $$    $$    
     $$  $$    
      $$$$     
       $$      
      $$$$     
     $$  $$    
    $$    $$   
   $$      $$  
  $$        $$ 
 $$          $$

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JVM垃圾回收器_jdk6默认垃圾回收器

    JVM垃圾回收器_jdk6默认垃圾回收器JVM垃圾回收器垃圾回收器分类说明垃圾回收器工作原理垃圾回收器分类说明如果说垃圾回收算法是内存回收的方法论,那么垃圾回收器就是内存回收的具体实现,下图展示了7中作用于不同分代的收集器。其中用于新生代的回收器包括Serial,PraNew,ParallelScavenge,回收老年代的收集器包括SerialOld,Parallelold,CMS,还有作用于回收整个java堆的G1收集器,不同收集器之间的连线表示他们可以搭配使用。Serial收集器(复制算法):新生代单线程收集器,标记和清理

  • typora主题修改后保存_typora设置字体

    typora主题修改后保存_typora设置字体typora买了几天了,一直思考什么时候去学习下,毕竟,以前是免费的,没那么多讲究,就是把它当做一个普普通通的编辑器使用。似乎也没有用它的任何功能,甚至连官网文档那么详细的解释都没看;可见,虽然使用着免费的优秀的产品,竟然连最基础的功能都不会。换了个主题,这个是看着官网文档做的。主题下载首先,去下载了一个主题,https://theme.typora.io/;选一个自己喜欢的。设置主题其次,打开偏好设置,找到主题保存的文件夹。操作如下:流程图#mermaid-svg-FyDmLYlb0MV3

    2022年10月28日
  • 微信小程序初见+nodejs服务端 (一个简单的博客)「建议收藏」

    微信小程序初见+nodejs服务端 (一个简单的博客)「建议收藏」比你优秀的人,比你还努力!耶懂得东西越多,发现自己不懂得越来越多,这是什么现象?

  • so文件格式详解_文件xls文件怎么打开

    so文件格式详解_文件xls文件怎么打开可执行链接格式(ExecutableandLinkingFormat)最初是由UNIX系统实验室(UNIXSystemLaboratories,USL)开发并发布,作为应用程序二进制接口(ApplicationBinaryInterface,ABI)的一部分,它是一种常用的目标文件格式,主要包含以下三种类型1、可重定位文件:可与其它目标文件一起创建可执行文件和共

  • double转bigDecimal精度问题

    double转bigDecimal精度问题double转bigDecimal精度问题需要用到bigDecimal的字符串构造来转float的精度:2^237位double的精度:2^5216位十进制转二进制存在精度差doubleg=12.35;BigDecimalbigG=newBigDecimal(g).setScale(1,BigDecimal.ROUND_HALF_UP);//…

  • c语言交通灯简单编程_在第一个交通灯处左转的英文

    c语言交通灯简单编程_在第一个交通灯处左转的英文内容介绍原文档由会员½ӨӨ发布交通灯控制系统设计1万字32页包括程序代码,系统原理图,Proteus仿真过程摘要本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展。交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作。从而使交通指挥系统更加有秩序,更加安全。至此本人设计了交通信号灯控制系统,来…

发表回复

您的电子邮箱地址不会被公开。

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