• 0421for循环各类题目


    for循环要点

    1.确认外层控制内容
    2.确认内层控制内容
    3.将打印内容与行号产生关系式
    4.有的语句可以用if语句,根据字符的个数来增减char,优化代码

    //部分类型只能输出奇数行,可在下半部分开始前,对行数做一个判断,根据讲述奇偶性调整自变量的取值;如下语句中的k
    	int k = i;
    	if (0 == line % 2) {
    		k = i - 1;
    	}
    			
    	for (int j = 1; j <= k; j++) {
    
    //偶数行的一半就是行数/2,奇数行的中间一行可以放在上半部分,先定义下半部分行数为  int = line / 2 ;再用总行数减去下半部分得到上半部分数值 
    	int cn = 2 * i - 1;//cn == charNumber
    	int bacCharNum = cn / 2;
    	int froCharNum = cn - bacCharNum;
    

    难度系数:重辣

    /*
    
    难度系数:重辣
         A
        ABA
       ABCBA
      ABCDCBA
     ABCDEDCBA
    ABCDEFEDCBA
    */
    
    class Demo8 {
    	public static void main(String[] args) {
    		
    		char ch = 'A';
    		int line = 10;
    				
    		for (int i = 1; i <= line;i++) {
    
    			ch = 'A';
    			
    			//输出空格
    			for (int j = 1; j <= line - i; j++) {
    				System.out.print(" ");
    			}
    			
    			int cn = 2 * i - 1;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    		
    			//输出每行的前半部分
    			for (int j = 1;j <= froCharNum ;j++) {
    				System.out.print(ch);
    				ch++;
    			}
    			
    			//输出每行的后半部分
    			ch -= 2;
    			for (int j = 1;j <= bacCharNum ;j++) {
    				System.out.print(ch);
    				ch--;
    			}			
    			System.out.println();
    		}
    	}
    }
    /*
    输出结果:
    
             A
            ABA
           ABCBA
          ABCDCBA
         ABCDEDCBA
        ABCDEFEDCBA
       ABCDEFGFEDCBA
      ABCDEFGHGFEDCBA
     ABCDEFGHIHGFEDCBA
    ABCDEFGHIJIHGFEDCBA
    */
    
    //难度系数:重辣
    //优化方案:将每行打印中的字母用if语句改写
    /*
         A
        ABA
       ABCBA
      ABCDCBA
     ABCDEDCBA
    ABCDEFEDCBA
    */
    
    class Demo88 {
    	public static void main(String[] args) {
    		
    		char ch = 'A';
    		int line = 10;
    				
    		for (int i = 1; i <= line;i++) {
    
    			ch = 'A';
    			ch --;
    			//输出空格
    			for (int j = 1; j <= line - i; j++) {
    				System.out.print(" ");
    			}
    			
    			int cn = 2 * i - 1;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    			
    		
    			for (int j = 1;j <= cn ;j++) {
    				if (j < froCharNum) {
    					ch++;
    				} else if (j == froCharNum) {
    					ch++;
    				} else {
    					ch--;
    				}
    				System.out.print(ch);
    			}
    			System.out.println();
    		}
    	}
    }
    

    难度系数:魔鬼辣

    /*
         A
        ABA
       ABCBA
      ABCDCBA
     ABCDEDCBA
    ABCDEFEDCBA
     ABCDEDCBA
      ABCDCBA
       ABCBA
        ABA
         A
    */
    class Demo9 {
    	public static void main(String[] args) {
    		
    		char ch = 'A';
    		int line = 11;//仅限奇数
    		
    		int downPart = line / 2;
    		int upPart = line - downPart;
    				
    		for (int i = 1; i <= upPart;i++) {
    			ch = 'A';
    			for (int j = 1; j <= upPart - i; j++) {
    				System.out.print(" ");
    			}
    			
    			int cn = 2 * i - 1;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    		
    			for (int j = 1;j <= froCharNum ;j++) {
    				System.out.print(ch);
    				ch++;
    			}
    				ch -= 2;
    			for (int j = 1;j <= bacCharNum ;j++) {
    				System.out.print(ch);
    				ch--;
    			}			
    			System.out.println();
    		}
    		
    		
    				
    		for (int i = 1;i <= downPart; i++) {
    			ch = 'A';
    			
    			int cn = 2 * downPart + 1 - 2 * i;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    			
    			for (int j = 1; j <= i; j++) {
    				System.out.print(" ");
    			}
    			
    			for (int j = 1;j <= froCharNum; j++) {
    			
    				System.out.print(ch);
    				ch ++;
    			}
    			ch -= 2;
    			for (int j = 1;j <= bacCharNum; j++) {
    				System.out.print(ch);
    				ch --;
    			}			
    			System.out.println();
    			
    		}
    	}
    }
    
    /*
    //难度系数:魔鬼辣
    //优化方案:调整为偶数也可以
    
         A
        ABA
       ABCBA
      ABCDCBA
     ABCDEDCBA
    ABCDEFEDCBA
    ABCDEFEDCBA
     ABCDEDCBA
      ABCDCBA
       ABCBA
        ABA
         A
    */
    
    class Demo99 {
    	public static void main(String[] args) {
    		
    		char ch = 'A';
    		int line = 12;
    		
    		int downPart = line / 2;
    		int upPart = line - downPart;
    				
    		for (int i = 1; i <= upPart;i++) {
    			ch = 'A';
    			for (int j = 1; j <= upPart - i; j++) {
    				System.out.print(" ");
    			}
    			
    			int cn = 2 * i - 1;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    		
    			for (int j = 1;j <= froCharNum ;j++) {
    				System.out.print(ch);
    				ch++;
    			}
    				ch -= 2;
    			for (int j = 1;j <= bacCharNum ;j++) {
    				System.out.print(ch);
    				ch--;
    			}			
    			System.out.println();
    		}
    		
    		
    		
    				
    		for (int i = 1;i <= downPart; i++) {
    			ch = 'A';
    			
    			int cn = 2 * downPart + 1 - 2 * i;
    			int bacCharNum = cn / 2;
    			int froCharNum = cn - bacCharNum;
    			
    			int k = i;
    			if (0 == line % 2) {
    				k = i - 1;
    			}
    			
    			for (int j = 1; j <= k; j++) {
    				System.out.print(" ");
    			}
    			
    			for (int j = 1;j <= froCharNum; j++) {
    			
    				System.out.print(ch);
    				ch ++;
    			}
    			ch -= 2;
    			for (int j = 1;j <= bacCharNum; j++) {
    				System.out.print(ch);
    				ch --;
    			}			
    			
    			System.out.println();
    		}
    	}
    }
    
    
  • 相关阅读:
    Daemon Tools手工完全卸载方案
    不要轻易删除/windows/install下文件
    Dumpbin命令的使用
    v4l2 视频捕获
    2瓶4两酒,1个1.5两的酒杯
    n个平面分空间最多可分成多少份
    &#65279导致页面顶部空白一行解决方法
    Base64编码原理分析
    浏览器中“JavaScript解析器”工作原理
    IList转化为DataSet,解决了System.nullable()的问题
  • 原文地址:https://www.cnblogs.com/raising/p/12744447.html
Copyright © 2020-2023  润新知