java 通过控制台输入的数字打印菱形字母
package com.rui.test; import java.util.Scanner; /**
* @author sunshine
* @version 1.0
* @date:2015年11月1日 下午7:34:28
* @description: 通过控制台输入的数字打印菱形字母
*/
public class MathCounter { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入数字:");
int len = scanner.nextInt();
printLing(len); } /**
* A 1 3空格1个字母
* BBB 2 2空格3个字母
* CCCCC 3 1空格5个字母
* DDDDDDD 4 0空格7个字母
* CCCCC 5 1空格5个字母 4 4*2
* BBB 6 2空格3个字母 4 5*2
* A 7 3空格1个字母 4 6*2
* */
public static void printLing(int len){
// String[] arr = {"A","B","C","D","C","B","A"};
if(len>25){
// len = 25;
}
if(len%2==0){
len = len + 1;
}
int n = len/2 + 1;
String[] arr = getStr(len);
for(int i=0;i<n;i++){
for(int j=0;j<n-i;j++){
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){
System.out.print(arr[i]);
}
System.out.println();
}
for(int i=0;i<n-1;i++){
for(int j=0;j<i+2;j++){
System.out.print(" ");
}
for(int j=0;j<2*(n-i)-3;j++){
System.out.print(arr[i+n]);
}
System.out.println();
}
} public static String[] getStr(int len){
String[] arr = new String[len];
for(int i=0;i<len;i++){
if(i<(len/2+1)){
char _char = (char)(65 + i);
arr[i] = String.valueOf(_char);
}else{
char _char = (char)(65+len-i-1); //(len*2-1)-2*i
arr[i] = String.valueOf(_char);
}
}
/*for(int i=0;i<len;i++){ System.out.println(arr[i]);
}*/ return arr;
} //遍历0-256数字在ASCII码中对应的字母 A===65
public void printChar(){
for(int i=0;i<256;i++){
char _char = (char)i;
System.out.println(i+"==="+_char);
}
}
}
开发这么久,很少使用到算法,今天重新温习下
java 通过控制台输入的数字打印菱形字母的更多相关文章
- Java初学者作业——编写Java程序,输入一个数字,实现该数字阶乘的计算。
返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4* ...
- Java50道经典习题-程序19 输入行数打印菱形图案
题目:根据用户输入的行数打印菱形图案,若用户传入的是为偶数则提示用户重新输入,例如输入数字7打印出如下菱形图案 * *** ************ ***** *** *分析:先把图形分 ...
- java接收控制台输入
java控制台输入语句: Scanner sc = new Scanner(System.in); 通过一个变量,例如 int r; r = sc.nextInt(); 例子: public st ...
- Python输入一个数字打印等腰三角形
要求 用户输入一个数字,按照数字打印出等腰三角形 思路 1,用户输入的数字为n代表一共有多少行 2,使用一个循环带两个for循环,第一层循环是循环行数,第二层两个平行for循环一个打印空格一个打印*号 ...
- java 获取控制台输入
读取控制台输入 从控制台读取一行数据,返回值字符串 public class IO { public static void main(String args[]) throws IOExceptio ...
- java扫描控制台输入
由于因最近练习算法的需要,加上API文档中翻译的太过模糊,做了一些小测试,算是武断的记下一些个人结论. Scanner cin = new Scanner(System.in); 对于cin.next ...
- java从控制台接收一个数字
//时间:2017/7/22//作者:江骆//功能:从控制台接收一个数import java.io.*; //引入一个IO流的包public class helloworld1{ public ...
- java例题_08 输入特定数字求和(n个a位数递增求和问题)
1 /*8 [程序 8 输入数字求和] 2 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字.例如 2+22+222+2222+22222(此时共有 5 个数相加), ...
- java在控制台输出空心正方形,菱形,空心菱形
使用for和if打印一个空心正方形 /*思路:要想打印一个5x5的空心正方形,首先它的第一横行和最后一行都是填满的,需要全部遍历出来,第二三四行和只有左右两条边是出来的,中间部分为空的.因此在打印第 ...
随机推荐
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- AChartEngine使用View显示图表
学习过AChartEngine的人肯定都知道,使用ChartFactory创建一张图表可以使用Intent方法,之后调用StartActivity来启用这个Intent,但是这么左右一个坏处,就是当你 ...
- Windows安装java
1.下载并安装java(jdk)//在官网下载即可——http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363. ...
- SPOJ REPEATS 后缀数组
题目链接:http://www.spoj.com/problems/REPEATS/en/ 题意:首先定义了一个字符串的重复度.即一个字符串由一个子串重复k次构成.那么最大的k即是该字符串的重复度.现 ...
- ReportViewer报表
个人感觉ReportViewer>DataGridView>listView 打开一个空的winform窗体程序,工具栏报表拖入 ReportViewer 在空的Form1中 在同一命名空 ...
- Console.log,Window.alert,Document.write三者区别
1.Console.log不会阻断程序继续进行,在控制台可以看到测试结果. 2.Window.alert弹出框会阻断程序运行,在弹出框可以看到测试结果. 3.Document.write不会阻断程序继 ...
- zoj 3795 Grouping tarjan缩点 + DGA上的最长路
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit Status Practic ...
- CSS3实现动画
CSS3实现一个简单的动画 可以改变任意多的样式任意多的次数,用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%. ...
- OAuth2授权页面state参数的设计
场景描述: 第三方应用:freeshare 账号系统:account freeshare点击登录,跳转到account页面进行授权. 具体例子可以参考我们的freeshare系统:http://fre ...
- bzoj1006 [HNOI2008]神奇的国度
1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 2304 Solved: 1043 Description ...