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();
}
}
}

0421for循环各类题目的更多相关文章

  1. js初学者循环经典题目

    1.根据一个数字日期,判断这个日期是这一年的第几天例如: 2016和02和11,计算后结果为42 var y = 2016;//+prompt("请输入年份") ;         ...

  2. C语言的选择和循环上机题目(部分)

    /*(1)某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元/公里,3公里以外2.1元/公里:富康8元/公里,3公里以外2.4元/公里:桑塔纳9元,3公里以外2.7元/公里.编程:从键盘输入乘车 ...

  3. 美丽的for循环语句

    美丽的for循环语句 题目:用for循环语句实现四个三角形不同的形状.   图案:    ---------------第一个三角形图形形状----------------**********第二个三 ...

  4. JS中的循环嵌套 BOM函数

    [嵌套循环特点]                           外层循环转一次,内层循环转一圈              外层循环控制行数,内层循环控制每行元素个数             [做 ...

  5. 循环语句(for,while,do……while),方法概述

    循环结构 分类:for,while,do……while (1)for语句 格式: for(初始化表达式:条件表达式:循环后的操作表达式){ 循环体: } 执行流程: a.执行初始化语句 b.执行判断条 ...

  6. [LeetCode] Insert into a Cyclic Sorted List 在循环有序的链表中插入结点

    Given a node from a cyclic linked list which is sorted in ascending order, write a function to inser ...

  7. c语言:第二次作业,循环结构

    1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也 ...

  8. 洛谷 P3965 [TJOI2013]循环格 解题报告

    P3965 [TJOI2013]循环格 题目背景 一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子. 每个元素有一个坐标(行,列),其中左上角元素坐标为\((0,0)\).给定一个起始位\ ...

  9. 51nod 1035 最长的循环节 数学

    1035 最长的循环节 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 Description 正整 ...

随机推荐

  1. struts2验证码

    验证码大多是jsp,servlet写的. 我拿来主义了, 再自己完善了一下(我一直努力想要站在巨人的肩膀)   首先是页面 test.jsp <%@ page contentType=" ...

  2. linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...

    linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...

  3. 数制转换itoa atoi int转字符串 字符串转int string转int int转string

    在苦于昨晚最后一个数制转换题,他的转换结果必须是整形数,纳尼?转换完放数组里又要变成整形数.这是什么操作,而且如果是16进制,用字母A,B-表示,在进行运算时都难以计算. 突发奇想,当十进制成立的时候 ...

  4. zabbix 数据库分区表配置

    下载 pwd /usr/local/zabbix/share/zabbix/externalscriptswget http://cactifans.hi-www.com/zabbix/partiti ...

  5. linux解压缩tar.gz文件

    1.解压缩命令 命令:tar -zxvf 文件名 -z 有gzip属性的 -x 解压 -v 显示所有过程 -f 要处理的文件名 2.压缩命令 命令: tar -zcxf 压缩后的文件名 要压缩的文件名 ...

  6. Python网络爬虫练习

    1. 豆瓣top250电影 1.1 查看网页 目标网址:https://movie.douban.com/top250?start=0&filter= start=后面的数字从0,25,50一 ...

  7. Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?

    大家好,这是"Python为什么"系列节目的文字稿(文末有观看地址). 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end ...

  8. 【Hadoop离线基础总结】Sqoop数据迁移

    目录 Sqoop介绍 概述 版本 Sqoop安装及使用 Sqoop安装 Sqoop数据导入 导入关系表到Hive已有表中 导入关系表到Hive(自动创建Hive表) 将关系表子集导入到HDFS中 sq ...

  9. spark-2.4.5 安装记录

    参考 https://data-flair.training/blogs/install-apache-spark-multi-node-cluster/ 下载 spark 地址为 http://sp ...

  10. PCB规则