java金字塔图形的代码 金字塔代码 java

java金字塔代码有些不明白请大神进来一下下

i-j是没有条件的,只是用i-j的值来作为判断的标准。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站建设、个旧网络推广、成都小程序开发、个旧网络营销、个旧企业策划、个旧品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供个旧建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

以第1行为例,i等于5,j等于1,time等于0,此时time不等于i-j,所以这个时候要打印空格,并且time自增1,进入下一轮循环。直到打印了4个空格之后,time等于4,此时

time!=i-j条件为假,跳出循环,执行下一步。

用java编写人口金字塔

package thread;

import java.util.Scanner;

public class PopulationPyramid{

public static int decadeCounts = 0; // 代数

public static int mdemographics[]; // 男

public static int fdemographics[];// 女

// 用来记录所有decades当中male或者female的最大数。

public static int maxCount = 0;

/**

* init

* 初始化数据方法

*/

public void init() {

Scanner s = new Scanner(System.in);

System.out.println("How many decades please?");

// 获取代数并创建对应的数组对象

decadeCounts = s.nextInt();

mdemographics = new int[decadeCounts];

fdemographics = new int[decadeCounts];

// 第一次输入时初始化不同年龄阶段的人口数量。

for(int i = 0; i decadeCounts; i ++){

System.out.println("How many males of age " + (i * 10) + ":" + ((i + 1) * 10 - 1) + " ?");

// 记录第I带中male的数量

mdemographics[i] = s.nextInt();

// 记录人口最大数

maxCount = maxCount mdemographics[i] ? maxCount : mdemographics[i];

System.out.println("How many males of age " + (i * 10) + ":" + ((i + 1) * 10 - 1) + " ?");

fdemographics[i] = s.nextInt();

maxCount = maxCount fdemographics[i] ? maxCount : fdemographics[i];

}

print();

}

public void getNextGeneration(){

Scanner s = new Scanner(System.in);

int maleBabies;

int femaleBabies;

System.out.println("The next generation");

System.out.println("Enter number of male babies ");

maleBabies = s.nextInt();

System.out.println("Enter number of female babies ");

femaleBabies = s.nextInt();

// 调整年龄结构

for(int i = decadeCounts - 1; i 0; i --){

mdemographics[i] = mdemographics[i - 1];

fdemographics[i] = fdemographics[i - 1];

}

// 将最新的放入数组当中

mdemographics[0] = maleBabies;

fdemographics[0] = femaleBabies;

print();

}

/**

* print

* 输出人口金字塔

*/

public void print() {

System.out.println("The demographic map");

for (int i = decadeCounts - 1; i = 0; i--) {

// 输出男性左侧对应的空格

for(int j = 0; j maxCount - mdemographics[i]; j ++)

System.out.print(" ");

// 输出男性人数

for(int j = 0; j mdemographics[i]; j ++)

System.out.print("*");

// 输出女性人数

for(int j = 0; j fdemographics[i]; j ++)

System.out.print("#");

// 换行

System.out.println();

}

}

public static void main(String[] args) {

PopulationPyramid _instance = new PopulationPyramid();

_instance.init();

while(true){

_instance.getNextGeneration();

}

}

}

给分吧,哈哈,还有注释的。。。。、

求镂空的倒金字塔java代码....金字塔可用*代替! 谢了

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Point;

import javax.swing.JFrame;

import javax.swing.JPanel;

// 点阵法:

// 首先,我们假设金字塔是等边三角形,等边三角形与矩形的关系是:

// 1, 底边是矩形的宽度

// 2, 高是举行的长度

// 3, 顶点是矩形的底边中点

// *******

// |* *|

// | * * |

// ---*---

// 这样,如果我们知道矩形的长和宽,我们就能指导等边三角形在矩形每一行中的点位于什么位置了:

// 若长(height)为4,宽(width)为7.

// 计算等边三角形在某一行x的两点位置为:

// 若x == 1, 则整行都是三角形的边

// 若x == 4, 则只有中点是三角形的边。中点 = width / 2 + (width % 2 0 ? 1 : 0)

// 若 x 1 x 4,则左点 = width / (2 * height) * x; 右点 = width - width / (2 * height) * x + 1;

// 知道了三角形的点,我们就能画出金字塔了。

// Java2D

// 首先,找到三角形的三个点,在两两相连即可。

// 示例如下:

public class Question1 {

// 矩形

class Rec{

int height;

int width;

public Rec(int height, int width){

this.height = height;

this.width = width;

}

public int getHeight() {

return height;

}

public int getWidth() {

return width;

}

}

// 以字符串打印形式绘制[点阵法]

public Question1(int height, int width, char shape) {

height = height = 0 ? 3 : height; // 对参数进行验证整理

width = width = 0 ? 3 : width; // 对参数进行验证整理

// 每行有多少点?

int rowPoints = width;

// 不要忘记每行最后还有换行符

rowPoints ++;

// 总共有多少点?

int totalPoints = rowPoints * height;

char[] allChar = new char[totalPoints]; // 所有行的字符

// 特殊处理第一行

for(int i = 0; i rowPoints; i++){

if(i rowPoints - 1) // rowpoints位是换行符,所以这里需要特殊处理。

allChar[i] = shape;

else

allChar[i] = '\n';

}

// 处理从第二行到倒数第二行

for(int i = 2; i height; i++){

//左点 = width / (2 * height) * x; 右点 = width - width / (2 * height) * x + 1;

// 但是这里得牢记,运算符的运算顺序,所以必须这样写:

int leftpoint = (width * i) / (2 * height);

int rightpoint= width - (width * i) / (2 * height) + 1;

for(int j = 0; j rowPoints; j++){

int index = (i - 1) * rowPoints + j; // 这里对数组index的计算很重要,千万别算错了。

if( j rowPoints - 1){

if(j + 1 == leftpoint || j + 1 == rightpoint) // 列序号从0开始,但点位是从1开始的,所以给列序号+1

allChar[index] = shape;

else

allChar[index] = ' ';

}else{

allChar[index] = '\n';

}

}

}

//特殊处理最后一行

int point = width / 2 + (width % 2 0 ? 1 : 0);

int startIndex = (height - 1) * rowPoints;

for(int i = 0; i rowPoints; i++){

if( i rowPoints - 1){

if( i + 1 == point)

allChar[startIndex + i] = shape;

else

allChar[startIndex + i] = ' ';

}else

allChar[allChar.length - 1] = '\n';

}

String result = new String(allChar);

System.out.print(result);

}

class PanelContainer extends JPanel{

private Point point1;

private Point point2;

private Point point3;

public PanelContainer(Point point1, Point point2, Point point3){

this.point1 = point1;

this.point2 = point2;

this.point3 = point3;

setBackground(Color.white);

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

if(point1 != null point2 != null point3 != null){

g.setColor(Color.red);

Graphics2D g2d = (Graphics2D) g;

g2d.drawLine((int)point1.getX(), (int)point1.getY(), (int)point2.getX(), (int)point2.getY());

g2d.drawLine((int)point2.getX(), (int)point2.getY(), (int)point3.getX(), (int)point3.getY());

g2d.drawLine((int)point1.getX(), (int)point1.getY(), (int)point3.getX(), (int)point3.getY());

}

}

}

//Java2D

public Question1(int height, int width) {

JFrame frame = new JFrame("Java2D 三角形");

frame.setBounds(50, 50, 400, 400);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Point point1 = new Point(50, 50);// 让图形举例边界50像素

Point point2 = new Point(width + 50, 50);

Point point3 = new Point(width/2 + 50, height + 50);

PanelContainer container = new PanelContainer(point1, point2, point3);

frame.getContentPane().add(container);

frame.setVisible(true);

}

public static void main(String args[]){

new Question1(200, 300, '*');

new Question1(200, 300);

}

}

文章题目:java金字塔图形的代码 金字塔代码 java
网页URL:https://www.cdcxhl.com/article34/dochdpe.html

成都网站建设公司_创新互联,为您提供网站设计公司全网营销推广静态网站企业网站制作网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站