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();
}
}
}
0421for循环各类题目的更多相关文章
- js初学者循环经典题目
1.根据一个数字日期,判断这个日期是这一年的第几天例如: 2016和02和11,计算后结果为42 var y = 2016;//+prompt("请输入年份") ; ...
- C语言的选择和循环上机题目(部分)
/*(1)某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元/公里,3公里以外2.1元/公里:富康8元/公里,3公里以外2.4元/公里:桑塔纳9元,3公里以外2.7元/公里.编程:从键盘输入乘车 ...
- 美丽的for循环语句
美丽的for循环语句 题目:用for循环语句实现四个三角形不同的形状. 图案: ---------------第一个三角形图形形状----------------**********第二个三 ...
- JS中的循环嵌套 BOM函数
[嵌套循环特点] 外层循环转一次,内层循环转一圈 外层循环控制行数,内层循环控制每行元素个数 [做 ...
- 循环语句(for,while,do……while),方法概述
循环结构 分类:for,while,do……while (1)for语句 格式: for(初始化表达式:条件表达式:循环后的操作表达式){ 循环体: } 执行流程: a.执行初始化语句 b.执行判断条 ...
- [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 ...
- c语言:第二次作业,循环结构
1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也 ...
- 洛谷 P3965 [TJOI2013]循环格 解题报告
P3965 [TJOI2013]循环格 题目背景 一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子. 每个元素有一个坐标(行,列),其中左上角元素坐标为\((0,0)\).给定一个起始位\ ...
- 51nod 1035 最长的循环节 数学
1035 最长的循环节 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 Description 正整 ...
随机推荐
- Ubuntu上安装配置Java环境
参考文献:在Ubuntu 14.04中安装JDK 方法一: @ 安装 1. 添加PPA repository系统 PPA repository介绍 $sudo add-apt-repository p ...
- python(configparser 模块)
1.下载安装 configparser 第三方模块 pip install configparser 2.读取配置文件 #配置文件内容如下 """ "D:/co ...
- python(For 循环语句)
一.For循环 Python for 循环可以遍历任何序列的项目,如一个列表或者一个字符串或者字典等. 语法模式:for var in sequence: (1)从某个集合(列表等)里顺次取值 #遍历 ...
- VSCode最强助攻
VSCode最强助攻 VS Code是前端界必备的开发工具.页面仔小杨简单介绍几款高效.好用的插件,让原本单薄的VS Code如虎添翼,开发效率倍增. vscode-icons vscode-icon ...
- 基础JS遇到的一些题01
1.两种数组去重方法 const unique = arr =>{ let mySet = new Set(arr); /!* let newArr =[]; for (let i = 0 ;i ...
- 环境篇:Kylin3.0.1集成CDH6.2.0
环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...
- c#得出两个列表的交集
c#提供了Intersect来得到两个列表的交集,它是通过使用默认的相等比较器对值进行比较生成两个序列的交集,定义为: public static IEnumerable<TSource> ...
- 网络编程采用HttpClient类更好
一般人网络编程普遍用HttpWebRequest,类似下面的实现.我也一般都这样实现 string result = string.Empty; HttpWebRequest request = (H ...
- SpringData表关系:多对多
一.编写实体类配置关联关系: 1.多对多使用注解@ManyToMany配置:a. 在实体中添加一个集合属性 b.在属性上添加ManyToMany注解 c.@JoinTable 注解配置关联关系(nam ...
- Xshell 与 Xftp 的安装与使用
我们在日常工作中,不管是系统管理员.程序员.还是技术工程师,如果想登陆到 Linux 服务器,不可能总是跑到机房去工作,通常我们需要一个工具帮我们去做远程连接,这样我们只需要用笔记本电脑就可以连接到服 ...