1 条题解
-
0
C :
#include<stdio.h> int a[100][100]; int main(){ int n,i,j; scanf("%d",&n); for(j=1;j<=n;j++){ for(i=n;i>=1;i--){ if(i==j){ a[i][j] = i; }else{ a[i][j] = a[i+1][j] + a[i][j-1]; } } } for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(i>j){ printf("%5s",""); }else{ printf("%5d",a[i][j]); } } printf("\n"); } return 0; }C++ :
#include <bits/stdc++.h> using namespace std; int main(){ int a[20][20] = {0}; int i,j,n; cin>>n; for (i = 0;i < n;i++){ a[i][i] = i + 1; } for (i = 0;i < n - 1;i++){ for (j = 0;j < n - i - 1;j++){ a[j][j + i + 1] = a[j][j + i] + a[j + 1][j + i + 1]; } } for (i = 0;i < n;i++){ for (j = 0;j < n;j++){ if (a[i][j] == 0){ cout<<setw(5)<<" "; }else{ cout<<setw(5)<<a[i][j]; } } cout<<endl; } }Pascal :
var a:array[1..100,1..100] of longint; n,i,j:longint; begin readln(n); for i:=1 to n do a[i,i]:=i; for i:=n-1 downto 1 do for j:=i+1 to n do a[i,j]:=a[i+1,j]+a[i,j-1]; for i:=1 to n do begin for j:=1 to n do if a[i,j]>0 then write(a[i,j]:5) else write('':5); writeln end; end.Java :
import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[][] a=new int[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(i==j){ a[i][j]=i+1; } } } for(int c=0;c<n;c++){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(i<j){ a[i][j]=a[i][j-1]+a[i+1][j]; } } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(a[i][j]!=0){ System.out.print(String.format("%5d",a[i][j])); }else{ System.out.print(String.format("%5c",' ')); } } System.out.println(); } } }Python :
n = int(input()) a = [[0 for j in range(n)] for i in range(n)] # 先赋值左对角线 for i in range(n): a[i][i] = i + 1 # 以列为大方向,从1~n列 for j in range(1, n): # 以行为小方向,从j-1~0 for i in range(j - 1, -1, -1): a[i][j] = a[i + 1][j] + a[i][j - 1] for i in range(n): for j in range(n): if a[i][j] == 0: print('%5s' % ' ', end='') else: print('%5d' % (a[i][j]), end='') print()
- 1
信息
- ID
- 200
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者