本文目錄一覽:
java編寫楊輝三角~~~
#include stdio.h
main()
{ int i,j,n=0,a[17][17]={0};
while(n1 || n16)
{printf(“請輸入楊輝三角形的行數:”);
scanf(“%d”,n);
}
for(i=0;in;i++)
a[i][0]=1; /*第一列全置為一*/
for(i=1;in;i++)
for(j=1;j=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];/*每個數是上面兩數之和*/
for(i=0;in;i++) /*輸出楊輝三角*/
{for(j=0;j=i;j++)
printf(“%5d”,a[i][j]);
printf(“\n”);
}
}
用JAVA語言編譯楊輝三角形,怎麼做?
import java.util.Scanner;
public class PascalTriangle {
public static void main(String[] args) {
System.out.print(“Please input a digit for pascal triangle: “);
Scanner scanner = new Scanner(System.in);
final int num = scanner.nextInt();
int[][] ary = getPascalTriangle(num);
for(int[] item: ary){
for(int value: item){
System.out.print((value 0? value: “”) + ” “);
}
System.out.println();
}
}
private static int[][] getPascalTriangle(final int num) {
int[][] ary = new int[num][num];
for(int i = 0; i ary.length; i++){
ary[i][0] = 1;
ary[i][i] = 1;
}
for(int i = 1; i ary.length; i++){
for(int j = 1; j = i; j++){
ary[i][j] = ary[i-1][j-1] + ary[i-1][j];
}
}
return ary;
}
}
直接複製到java文件中就可以用了
Java語言楊輝三角
列印楊輝三角代碼如下:
public class woo {
public static void triangle(int n) {
int[][] array = new int[n][n];//三角形數組
for(int i=0;iarray.length;i++){
for(int j=0;j=i;j++){
if(j==0||j==i){
array[i][j]=1;
}else{
array[i][j] = array[i-1][j-1]+array[i-1][j];
}
System.out.print(array[i][j]+”\t”);
}
System.out.println();
}
}
public static void main(String args[]) {
triangle(9);
}
}
擴展資料:
楊輝三角起源於中國,在歐洲這個表叫做帕斯卡三角形。帕斯卡(1623—-1662)是在1654年發現這一規律的,比楊輝要遲393年。它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的優美結合。
楊輝三角具有以下性質:
1、最外層的數字始終是1;
2、第二層是自然數列;
3、第三層是三角數列;
4、角數列相鄰數字相加可得方數數列。
JAVA語言編寫楊輝三角,列印不出三角形
這個問題是因為題主使用了 println() 來列印每一個數字。println() 函數的名稱來源於 Print Line 的簡稱,從名字上就可以看出,此函數會列印出一個整行。因此 println() 函數會在要列印的字元串後自動添加一個 ‘\n’ 符號來構成一個新行。所以如果用 println() 來列印單個數字的話,每個數字在被列印出來後就會換行,這樣就導致了一行只有一個數字,所有數字列印出來後排成了一個豎條。
解決方法就是用 print() 方法來替代 println() 。print() 方法僅打出你括弧里給的字元串,不會額外添加任何東西,所以這個方法可以用來在一行里打出多個給定的字元串。 更改後的代碼如下:
public class YangHui {
public static void main(String args[]) {
// 先定義以一個二維數組。列比行多 1,EG:第 0 行有一個元素。
int[][] yanghui = new int[10][];
for (int i = 0; i yanghui.length; i++) {
yanghui[i] = new int[i + 1];
}
// 將二維數組賦值。
for (int i = 0; i yanghui.length; i++) {
for (int j = 0; j yanghui[i].length; j++) {
yanghui[i][0] = yanghui[i][i] = 1;
if ((i 1) (j 0) (j i)) {
yanghui[i][j] = yanghui[i – 1][j] +
yanghui[i – 1][j – 1];
}
}
}
// 二維數組遍歷,列印每個數字。
for (int i = 0; i yanghui.length; i++) {
for (int j = 0; j yanghui[i].length; j++) {
// 用 print() 方法列印數字
System.out.print(yanghui[i][j]);
// 列印完數字後列印一個 tab 來將數字隔開
System.out.print(‘\t’);
}
// 列印完一行數字後,列印一個新行並開始輸出下一行數字。
System.out.println();
}
}
}
這個程序的結果如下:
可見三角形的結構出現了。但是這個三角形並不是楊輝三角的等腰三角形,而是一個直角三角形,所以如果題主要求嚴格的楊輝三角的話,需要進行一些稍微複雜的修改。以下代碼可供參考,關於 printf() 函數的用法我在代碼注釋中稍有提及,詳細請參閱 Java 的官方文檔。
public class YangHui {
public static void main(String args[]) {
// 先定義以一個二維數組。列比行多 1,EG:第 0 行有一個
// 元素。
int[][] yanghui = new int[10][];
for (int i = 0; i yanghui.length; i++) {
yanghui[i] = new int[i + 1];
}
// 將二維數組賦值。
for (int i = 0; i yanghui.length; i++) {
for (int j = 0; j yanghui[i].length; j++) {
yanghui[i][0] = yanghui[i][i] = 1;
if ((i 1) (j 0) (j i)) {
yanghui[i][j] = yanghui[i – 1][j] +
yanghui[i – 1][j – 1];
}
}
}
// 二維數組遍歷,列印每個數字。
for (int i = 0; i yanghui.length; i++) {
// 列印數字之前先根據此行數字的數量來列印相應數量的
// 空格,這裡選擇 8 個空格的長度作為示範。
for (int k = 0;
k Math.ceil((10 – i – 1) / 2);
k++) {
// 前面的佔位符 “%-8s” 中, – 代表這個字元串是
// 左對齊的,8 代表這個字元串最多由 8 個字元組成,
// s 代表這個字元串表示的類型是字元串 (String)。
System.out.printf(“%-6s”, “”);
}
// 根據行數的奇偶來判斷是否列印額外半個長度(8 的一半
// 是 4)的空格,如果沒有這一步的話,列印出的形狀不會
// 是一個完整的等腰三角形。
System.out.printf(i % 2 == 0 ? “%-6s”
: “%-3s”, “”);
// 列印完前面的空格後便可列印數字了。
for (int j = 0; j yanghui[i].length; j++) {
// 每個數字仍占 8 個字元的空間,這樣可以保證數字
// 的長度整齊劃一。”%-8d” 中的 d 代表這個字元串
// 所表示的類型是整數(Decimal)。
System.out.printf(“%-6d”, yanghui[i][j]);
}
// 列印完一行數字後,列印一個新行並開始輸出下一行數字。
System.out.println();
}
}
}
(上述代碼的空格長度 6 和 3 可以隨意更改,只要確保長空格長度是偶數,短空格長度是長空格的一半即可。空格越長輸出的三角形越鬆散)。
以上代碼運行的結果為
是一個完整的楊輝三角形。
java 楊輝三角
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
int Line_num;
int row, col;
int yh[] = new int[20]; // 不超過20行
Scanner reader = new Scanner(System.in);
System.out.print(“請輸入行數:”);
Line_num = reader.nextInt();
yh[0] = 1;
for (row = 0; row Line_num; row++) { // 控制輸出行數為Line_num的循環控制
for (col = row; col 0; col–){
yh[col] = yh[col – 1] + yh[col];
}
for (int i=1;iLine_num-row;i++){ // 控制輸出每行前導空格的循環控制
System.out.print(” “);
}
for (col = 0; col = row; col++) {
System.out.print(yh[col]+” “); //輸出下標為col的項的代碼
}
System.out.println(“”);
}
}
}
我的上一樓不符合樓主需求,我是符合需求的第一個,希望樓主能採納!
用JAVA編寫楊輝三角
我的絕對正確 書上抄的 還驗證過!
public static void main(String[]args){
int r=6;
int a[][]=new int[r+1][]; //表示6個一維數組組成
for(int i=0;i=r;i++){
a[i]=new int[i+1];} //表示使用for循環為一維數組指定列數
YangHui(a,r);
}
static void YangHui(int a[][],int r){
for(int i=0;i=r;i++){
for(int j=0;ja[i].length;j++){
if(i==0||j==0||j==a[i].length-1)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(int i=0;i=r;i++){
for(int j=0;ja[i].length;j++){
System.out.print(a[i][j]+” “);}
System.out.println();}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280339.html