1233: 输出杨辉三角前n行(Java)
WUSTOJ 1233: 输出杨辉三角前n行
题目
Description
输出杨辉三角前n行。
Input
输入一个数n(n <= 9)
Output
输出杨辉三角前n行。(注意行末不能有多余的空格,数字以%3d的格式输出)
Sample Input
3
4
Sample Output
1
1 1
1 2 1
1
1 1
1 2 1
1 3 3 1
分析
- 考虑到多组输入,用二维数组提前初始化,再按照格式输出比较快,循环里面都每次单独计算的话可能较慢(未测试)
- 杨辉三角原理
第1列和对角线全部都是1。其他位置的数是它上面的1个数以及左上的1个数的和。公式如下:
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]

注意
- 前面的空格每次加2个,不是1个
- 每2个数之间有1个空格
- 每个数占3格,用%3d控制格式
- 末尾没有空格
- 每组数据输出之后有1个空行
代码
import java.util.Scanner;
public class Main {
private Scanner sc;
private int n;
// 保存杨辉三角,下标从0开始
private int[][] yangHui;
public Main() {
sc = new Scanner(System.in);
init(); // 初始化
while(sc.hasNext()) {
n = sc.nextInt();
display(); // 打印
System.out.println(); // 每组数据末尾换行
}
sc.close();
}
/**
* 初始化杨辉三角数组
*/
private void init() {
yangHui = new int[9][9];
yangHui[0][0] = 1;
int i, j;
for(i = 1; i < 9; i++) {
yangHui[i][0] = yangHui[i][i] = 1; // 第1列和最后1列
for(j = 1; j < i; j++) {
yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];
}
}
}
/**
* 打印杨辉三角
*/
private void display() {
int i, j;
for(i = 0; i < n; i++) {
// 前面空格个数
for(j = n - i - 1; j > 0; j--) {
System.out.print(" ");
}
// 每个数占3格,且每个数之间空1格
for(j = 0; j < i; j++) {
System.out.printf("%3d ", yangHui[i][j]);
}
// 最后1个数,换行
System.out.printf("%3d\n", yangHui[i][j]);
}
}
public static void main(String[] args) {
new Main();
}
}
1233: 输出杨辉三角前n行(Java)的更多相关文章
- 1233: 输出杨辉三角前n行
#include <stdio.h> int main() { int n,i,j,ch[15][15],v,k; char *nl = ""; while(scanf ...
- 使用for循环输出杨辉三角-还是不懂得需要复习
package com.chongrui.test; /* *使用for循环输出杨辉三角杨辉三角形由数字排列,可以把它看作一个数字表,其基本特征是两侧的数值均为1,其他位置的数值是其正上方的数值与左上 ...
- C语言实现输出杨辉三角
1.倒推法实现输出杨辉三角右半部分,代码如下: #include<stdio.h> int main() { ]; printf("请输入行数n:"); scanf(& ...
- php输出杨辉三角
php输出杨辉三角 一.截图 二.代码 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 08-使用for循环输出杨辉三角(循环)
/** * 使用循环输出杨辉三角 * * */ public class Test6 { public static void main(String[] args) { // 创建二维数组 int ...
- 算法基础_递归_求杨辉三角第m行第n个数字
问题描述: 算法基础_递归_求杨辉三角第m行第n个数字(m,n都从0开始) 解题源代码(这里打印出的是杨辉三角某一层的所有数字,没用大数,所以有上限,这里只写基本逻辑,要符合题意的话,把循环去掉就好) ...
- 用java输出杨辉三角
杨辉三角:它的两个边都是1,内部其它都是肩上两个数的和 第一种: package aaa; public class YangHui { public static void main(String[ ...
- java例题_33 等腰输出杨辉三角
1 /*33 [程序 33 杨辉三角] 2 题目:打印出杨辉三角形(要求打印出 10 行如下图) 3 程序分析: 4 1 5 1 1 6 1 2 1 7 1 3 3 1 8 1 4 6 4 1 9 1 ...
- 利用yield关键字输出杨辉三角
最近学习了下python,发现里面也有yield的用法,本来对C#里的yield不甚了解,但是通过学习python,对于C#的yield理解更深了!! 不多说了,小学生水平的表达能力伤不起.... 直 ...
随机推荐
- vmware如何克隆多个linux系统
安装一次系统相对来说耗时较长,且还要做各种配置,那么克隆就不失为一种好的选择.接下来我把我做系统克隆的步骤写下来,供大家参考: 右键点击已经安装的虚拟机,选择管理-->克隆,接下来弹出一个窗口 ...
- Tkinter 之Frame标签
一.参数说明 语法 作用 width 设置 Frame 的宽度默认值是 0 height 设置 Frame 的高度默认值是 0 background(bg) 设置 Frame 组件的背景颜色 bord ...
- HearthBuddy 调试肯瑞托法师寒冰屏障的配合
35疯狂的科学家 63肯瑞托法师 13过期货物专卖商 64对面的英雄术士 比较好的出牌策略是,肯瑞托法师+寒冰屏障 ailoop1 startEnemyTurnSimThread1start prin ...
- android studio: no idea annotations attached to the jdk 1.8 some issues will not be found
Android Studio今天早上打开项目提示错误信息: No IDEA annotations attached to the JDK 1.8 (C:\Program Files\Android\ ...
- jmeter 查看结果树,获取响应体写法校验是否提取写法是否正确的方法
JSON Path Expression里面写入提出值的写法,点击Test测试提取
- C# http请求 设置代理(标题可以作为搜索关键字)
例一(C# 通过代理发HTTP请求): https://q.cnblogs.com/q/88682/ 例二(C# 代理HTTP请求): https://www.cnblogs.com/ShalenCh ...
- PowerDesigner的安装和数据库创建
PowerDesigner安装方法: http://dev.firnow.com/course/3_program/java/javajs/20090908/174375.html 安装完这2个软件 ...
- c#.net从ftp下载文件到本地
c#.net从ftp下载文件到本地 /*首先从配置文件读取ftp的登录信息*/ ; ; , buffer_c ...
- iOS-UITableView的使用
6.14.1 UITableViewDataSource协议方法初始化数据 //设置组与组之间的间距 self.tableView.sectionHeaderHeight=5;//f ...
- sql 索引【转】
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他 简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能 ...