第一题
输入整数n,输出n层 A
B B
C C C
D D D D
..................................
import java.util.*;
public class Main {
public static void main(String[] argv) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int i = 1; i <= n; ++i) {
int num_space = n-i ;
int num_ch = 2*i-1;
char ch = (char)(65+i-1) ;
for (int j = 0; j < num_space; ++j) {
System.out.print(" ");
}
for (int j = 0; j < num_ch; ++j) {
System.out.print(ch);
}
System.out.println();
}
}
}
第二题
这次我们输出一个稍微复杂的三角形,输入一个大写字母(A
-Z
)或者一个数字(1
-9
)。
比如输入是F
的时候,输出:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA
输入是3
的时候,输出:
1
121
12321
输入格式
输入一个数字(1
-9
)或者一个大写字母(A
-Z
)。
输出格式
按照题目描述,输出对应的三角形。
样例输入1
F
样例输出1
A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA
样例输入2
4
样例输出2
1 121 12321 1234321
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException {
char m = (char) System.in.read();// 输入字符
if (m >= '1' && m <= '9') {
for (int i = 1; i <= m - '0'; i++) {
for (int j = 1; j <= m - '0' - i; j++) {
System.out.print(" ");
}
for (int a = 1; a <= i; a++) {
System.out.print(a);
}
for (int a = i - 1; a >= 1; a--) {
System.out.print(a);
}
System.out.println();
}
}
if ((int) m >= 65 && (int) m <= 90) {
for (int i = 1; i <= m - 64; i++) {
for (int j = 1; j <= m - 64 - i; j++) {
System.out.print(" ");
}
for (int a = 1; a <= i; a++) {
System.out.print((char) (65 + a - 1));
}
for (int a = i - 1; a >= 1; a--) {
System.out.print((char)(65 + a - 1));
}
System.out.println();
}
}
}
}
第三题
蒜头君最近迷恋上了一款游戏《我的世界(Minecraft)》,在游戏里面蒜头君可以任意开发资源然后建造各种宏伟的建筑。有一天蒜头君发现了一块荒野的土地上有很多宝藏,蒜头君想在土地上建一栋房子从而把宝藏包围起来。
假设地图是一个 nn 行 mm 列的方格地图,地图每个格子*
代表一个宝藏。比如 22 行 22 列的地图如下:
**
**
蒜头君对应要建的房子如下:
+-+-+
|*|*|
+-+-+
|*|*|
+-+-+
现在蒜头君告诉你地图的行列数,帮他画出房子的设计图。
输入格式
一行两个整数 n,m(0 < n,m \leq 50)n,m(0<n,m≤50),分别表示地图行数和列数。
输出格式
按照题目中要求的格式输出地图。
样例输入1
2 2
样例输出1
+-+-+ |*|*| +-+-+ |*|*| +-+-+
样例输入2
3 4
样例输出2
+-+-+-+-+ |*|*|*|*| +-+-+-+-+ |*|*|*|*| +-+-+-+-+ |*|*|*|*| +-+-+-+-+
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int m=scanner.nextInt();
for(int i=1;i<=2*n+1;i++)
{
for(int j=1;j<=2*m+1;j++)
{
if(i%2!=0&&j%2!=0)
{
System.out.print("+");
}
else if(i%2!=0&&j%2==0)
{
System.out.print("-");
}
else if(i%2==0&&j%2!=0)
{
System.out.print("|");
}
else {
System.out.print("*");
}
if(j%(2*m+1)==0)
{
System.out.println();
}
}
}
}
}
第四题
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
对方同时也需要在电脑 Dos 窗口中以字符的形式输出该标志,并能任意控制层数。
上面是对应输出 33 层嵌套的时候。
11 层嵌套如下:
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
输入格式
输入一个整数 n(0 \leq n \leq 30)n(0≤n≤30),表示图形嵌套的层数。
输出格式
对应层数的该标志。
样例输入1
1
样例输出1
..$$$$$.. ..$...$.. $$$.$.$$$ $...$...$ $.$$$$$.$ $...$...$ $$$.$.$$$ ..$...$.. ..$$$$$..
样例输入2
4
样例输出2
..$$$$$$$$$$$$$$$$$.. ..$...............$.. $$$.$$$$$$$$$$$$$.$$$ $...$...........$...$ $.$$$.$$$$$$$$$.$$$.$ $.$...$.......$...$.$ $.$.$$$.$$$$$.$$$.$.$ $.$.$...$...$...$.$.$ $.$.$.$$$.$.$$$.$.$.$ $.$.$.$...$...$.$.$.$ $.$.$.$.$$$$$.$.$.$.$ $.$.$.$...$...$.$.$.$ $.$.$.$$$.$.$$$.$.$.$ $.$.$...$...$...$.$.$ $.$.$$$.$$$$$.$$$.$.$ $.$...$.......$...$.$ $.$$$.$$$$$$$$$.$$$.$ $...$...........$...$ $$$.$$$$$$$$$$$$$.$$$ ..$...............$.. ..$$$$$$$$$$$$$$$$$..
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
char[][] graph=new char[5+4*n][5+4*n];
initBorderPoint(n,graph);
initCenterPoint(n,graph);
for(int i=0;i<5+4*n;i++) {
for(int j=0;j<5+4*n;j++) {
System.out.print(graph[i][j]);
}
System.out.println();
}
in.close();
}
public static void initBorderPoint(int n,char[][] graph) {
graph[0][0]='.';
graph[1][0]='.';graph[1][1]='.';
graph[2][0]='$';graph[2][1]='$';graph[2][2]='$';
for(int i=0;i<2*n;i++) {
graph[3+i][0]='$';graph[3+i][1]='.';
for(int j=0;j<2+i;j++) {
graph[3+i][2+j]=graph[3+i-2][j];
}
}
//左上给左下
int s=1;
for(int i=0;i<graph.length/2;i++) {
for(int j=0;j<s;j++) {
graph[graph.length-1-i][j]=graph[i][j];
}
s++;
}
//左上给右上
int c=1;
for(int i=0;i<graph.length/2+1;i++) {
for(int j=0;j<c;j++) {
graph[i][graph.length-1-j]=graph[i][j];
}
c++;
}
//左下给右下
c=1;
for(int i=graph.length;i>graph.length/2+1;i--) {
for(int j=0;j<c;j++) {
graph[i-1][graph.length-1-j]=graph[i-1][j];
}
c++;
}
}
public static void initCenterPoint(int n,char[][] graph) {
graph[graph.length/2-1][graph.length/2]='$';
graph[graph.length/2-2][graph.length/2-1]='.';
graph[graph.length/2-2][graph.length/2]='$';
graph[graph.length/2-2][graph.length/2+1]='.';
for(int i=1;i<2*n+1;i++) {
for(int j=0;j<2+i;j++) {
if(i%2!=0&&j==0) {
graph[graph.length/2-2-i][graph.length/2]='.';
}else if(i%2==0&&j==0) {
graph[graph.length/2-2-i][graph.length/2]='$';
}
if(graph[graph.length/2-2-i][graph.length/2]=='.'&&j>0&&j<2+i-1) {
graph[graph.length/2-2-i][graph.length/2+j]='.';
graph[graph.length/2-2-i][graph.length/2-j]='.';
}else if(graph[graph.length/2-2-i][graph.length/2]=='$'&&j>0&&j<2+i-1) {
graph[graph.length/2-2-i][graph.length/2+j]='$';
graph[graph.length/2-2-i][graph.length/2-j]='$';
}
if(i%2!=0&&j==2+i-1) {
graph[graph.length/2-2-i][graph.length/2+j]='$';
graph[graph.length/2-2-i][graph.length/2-j]='$';
}else if(i%2==0&&j==2+i-1) {
graph[graph.length/2-2-i][graph.length/2+j]='.';
graph[graph.length/2-2-i][graph.length/2-j]='.';
}
}
}
for(int i=0;i<2+2*n;i++) {
for(int j=0;j<1+i;j++) {
graph[graph.length/2+1+i][graph.length/2]=graph[graph.length/2-1-i][graph.length/2];
if(j>=1) {
graph[graph.length/2+1+i][graph.length/2+j]=graph[graph.length/2-1-i][graph.length/2+j];
graph[graph.length/2+1+i][graph.length/2-j]=graph[graph.length/2-1-i][graph.length/2-j];
}
}
}
}
}
第五题
输出杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[][] a = new int[n + 1][n + 1];
a[1][1] = 1;
a[2][1] = 1;
a[2][2] = 1;
System.out.println(a[1][1]);
System.out.print(a[2][1]+" ");
System.out.println(a[2][2]);
for (int i = 3; i <= n; i++) {
for (int j = 1; j <= i; j++) {
if(j==1){
a[i][j]=1;
System.out.print("1"+" ");
}
else if(j==i)
{
a[i][i]=1;
System.out.println("1"+" ");
}
else {
a[i][j]=a[i-1][j-1]+a[i-1][j];
System.out.print(a[i][j]+" ");
}
}
}
}
}