การคัดลอกรหัสมีดังนี้:
/*Java
*ผู้แต่ง: Nealfeng ที่ oschina.net
*ใบอนุญาต: GPLV2+
*เวลา: 2014/1/17
-
*เอาต์พุตพีระมิดดิจิตอลในคอนโซล:
* 1
* 1 2 1
* 1 2 4 2 1
* 1 2 4 8 4 2 1
* 1 2 4 8 16 8 4 2 1
*ข้อบกพร่องของเอาต์พุตคอนโซลคือตัวเลขไม่สามารถอยู่กึ่งกลางได้อย่างสมบูรณ์และสามารถอยู่ได้หรือไม่
-
ชั้นเรียนสาธารณะ numberpyramid {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
// จำนวนแถว
int linenumber = 5;
// ฐาน
int basenumber = 2;
// สร้างตัวเลขและตัวเลขจะถูกบันทึกไว้ในอาร์เรย์ {1,2,4,8, ... , 2^n}
int [] numbers = new int [linenumber];
ตัวเลข [0] = 1;
สำหรับ (int i = 1; i <linenumber; i ++) {
ตัวเลข [i] = ตัวเลข [I-1] * basenumber;
-
// คำนวณจำนวนอักขระแต่ละหมายเลขที่ครอบครอง: จำนวนสูงสุดของตัวเลข + 2
คอลัมน์ int คอลัมน์ =
string.valueof (ตัวเลข [linenumber-1]). ความยาว () + 2;
// เอาต์พุตรูปแบบเอาต์พุตมีดังนี้:
// แต่ละ intent = columnspernumber spaces
// ความกว้างของแต่ละหมายเลขคือคอลัมน์
// นี่จะเป็นรูปทรงคล้ายพีระมิด
// การเยื้องที่เยื้องเยื้องจำนวนเยื้องหมายเลขเยื้อง
// เยื้องภายในตัวเลขดิจิตอล
// ตัวเลขตัวเลขเยื้อง
// ตัวเลขดิจิตอล
สำหรับ (int i = 0; i <linenumber; i ++) {
// การเยื้องเอาท์พุท
สำหรับ (int j = 0; j <linenumber-i-1; j ++)
System.out.printf ("%"+columnspernumber+"s", "");
// หมายเลขเอาต์พุต
// เอาท์พุท {1,2,4,8, ... , 2^n}
สำหรับ (int k = 0; k <i+1; k ++)
System.out.printf ("%"+columnspernumber+"d", ตัวเลข [k]);
// output {2^n-1, ... , 8,4,2,1}
สำหรับ (int m = 0; m <i; m ++)
System.out.printf ("%"+columnspernumber+"d", ตัวเลข [im-1]);
//ชนะ
System.out.println ();
-
-
-