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 正整 ...
随机推荐
- 数据结构--顺序栈--C++实现
#include <iostream> #define MaxSize 5000 using namespace std; template <typename T> clas ...
- 从零开始制作数据集所需要的所有python脚本
最近一直在做图片数据集,积累了很多心得.我把我所使用的python脚本全部拿出来,当然这些脚本大部分网上都有,只不过比较分散. 我已经把所有代码上传到github上,觉得写的好的话,请给我一个star ...
- Fiddler手机端抓包环境设置与过滤(二)
经过了上一篇,我们已经配好了PC与手机端的抓包环境可以实现抓包.传送机:https://www.cnblogs.com/jc-home/p/11668712.html 但是如果不经过筛选的话抓到的内容 ...
- Spring MVC的Controller接受请求方式以及编写请求处理方法
Controller接受请求参数的常见方法: 1.通过Bean接受请求参数: 创建POJO实体类 创建pojo包,并在该包中创建实体类UserForm,代码: package pojo; public ...
- LTE基站开局流程
1.全局参数配置 MOD ENODEB :修改基站 ADD CNOPERATOR: 添加运营商 ADD CNOPERATORTA:添加跟踪区(TA) 2.设备参数配置(机柜.机框.RRU.光纤链 ...
- sshd: no hostkeys available — exiting
在开启SSHD服务时报错.sshd re-exec requires execution with an absolute path用绝对路径启动,也报错如下:Could not load host ...
- Python学习之字符串中的下标和切片以及逆序
python中的下标从0开始 从后往前取 注意:后面的2代表步长,先看2:-1取出来的数值 [起始位置:终止位置:步长] 逆序 但是发现如果[-1:0:-1]发现是取不到第一个元素的,那么怎么办? 此 ...
- redis crackit入侵事件总结
今天发现服务器有异常进程/opt/yam/yam,上网搜了搜,是由于redis未授权引起的入侵,查了些资料,这里做下总结. 1. 现象 有以下其一现象就要注意是否被入侵 crontab -l 可以看到 ...
- redis 集群安装
redis集群安装 1.下载redis源码 2.解压并进入解压后的文件夹redis内 3.make,生成一系列的文件(mkreleasehdr.sh, redis-benchmark, redis-c ...
- [poj1741 Tree]树上点分治
题意:给一个N个节点的带权树,求长度小于等于K的路径条数 思路:选取一个点作为根root,假设f(root)是当前树的答案,那么答案来源于两部分: (1)路径不经过root,那么就是完全在子树内,这部 ...