java完整代码打倒立正三角形
时间: 2023-07-02 07:08:48 浏览: 42
以下是Java代码实现倒立正三角形的图案:
```
public class InvertedTriangle {
public static void main(String[] args) {
int rows = 5; //定义倒立三角形的行数
for (int i = rows; i >= 1; i--) {
for (int j = i; j < rows; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
```
输出结果如下:
```
*****
***
*
```
倒立正三角形的实现原理是先输出一行空格,然后在输出对应数量的星号,每一行星号数量为2 * i - 1,i 表示当前行数。
相关问题
python打倒三角形
我可以回答这个问题。要打印一个倒三角形,可以使用嵌套循环和条件语句来实现。以下是一个示例代码:
```
n = 5
for i in range(n):
for j in range(n-i):
print("*", end="")
print()
```
这将打印出一个倒三角形,其中 n 是三角形的高度。
多米诺骨牌游戏,有N个骨牌,把它们摆在一条直线上,已知它们的位置和高度,骨牌可以向左右两边倒,若它可以碰到附近的骨牌(若它倒下去,只能达到附近骨牌位置时,不算能打倒,即:这里的骨牌是没有厚度的)问:任意推倒一块骨牌,最多能打倒多少张骨牌!用Java实现
以下是Java实现代码:
```java
import java.util.Arrays;
public class DominoesGame {
public static int knockDown(int[] positions, int[] heights, int index) {
int n = positions.length;
int[] left = new int[n]; // left[i]表示从位置i往左最多能打倒的骨牌数
int[] right = new int[n]; // right[i]表示从位置i往右最多能打倒的骨牌数
// 初始化
Arrays.fill(left, 1);
Arrays.fill(right, 1);
// 计算left数组
for (int i = index - 1; i >= 0; i--) {
for (int j = i + 1; j <= index; j++) {
if (positions[j] > positions[i]) {
int diff = heights[j] - heights[i];
if (diff <= 0 || diff > positions[j] - positions[i]) {
left[i] = Math.max(left[i], left[j] + 1);
}
}
}
}
// 计算right数组
for (int i = index + 1; i < n; i++) {
for (int j = i - 1; j >= index; j--) {
if (positions[j] < positions[i]) {
int diff = heights[j] - heights[i];
if (diff <= 0 || diff > positions[i] - positions[j]) {
right[i] = Math.max(right[i], right[j] + 1);
}
}
}
}
// 计算结果
int maxCount = 1;
for (int i = 0; i < n; i++) {
maxCount = Math.max(maxCount, left[i] + right[i] - 1);
}
return maxCount;
}
public static void main(String[] args) {
int[] positions = {1, 3, 7, 8, 9};
int[] heights = {1, 2, 6, 4, 3};
int index = 2;
int maxCount = knockDown(positions, heights, index);
System.out.println("最多能打倒的骨牌数:" + maxCount); // 预期输出结果为4
}
}
```
以上代码中,我们使用了动态规划的思想,分别计算了从每个位置往左和往右最多能打倒的骨牌数,然后取两者之和再减1即为任意推倒一块骨牌,最多能打倒的骨牌数。时间复杂度为O(n^2),空间复杂度为O(n)。