多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,,也表示输出行数。
针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
4
* * * * * * * * * *
5
* * * * * * * * * * * * * * *
import java.util.*; public class Main { public static void main(String [] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int num = sc.nextInt(); //控制行数 for(int i=1;i<=num;i++){ //空格 for(int n=num-i;n>=1;n--){ System.out.print(String.join("", " ")); } //*号 for(int m=1;m<=i;m++){ System.out.print(String.join("","*"+" ")); } System.out.println(); } } } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { //接受数字输入 int n = sc.nextInt(); String temp = String.join("", Collections.nCopies(n+1, " ")); for (int i = 1; i <=n; i++) { //输出n-i个空格" ",以及拼接字符串->在i个*中插入空格" " //Collections.nCopies(i, "*") 是复制i-1个*,如i=3,就是*** //下面的String.join方法是在字符串空隙中插入指定字符串,如***,变成* * * System.out.println(String.join("", Collections.nCopies(n-i, " "))+ String.join(" ", Collections.nCopies(i, "*"))+" "); } } } }
#include <stdio.h> #include <math.h> int main() { int n; while(scanf("%d",&n)!=EOF)//实现多组输入 { for(int i=1;i<=n;i++) { for(int j=0;j<n-i;j++) { printf(" "); } for(int k=n-i;k<n;k++) { printf("* "); } printf("\n"); } } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int n = in.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j < n - i - 1) { System.out.print(" "); //控制空格数即可 } else { System.out.print("* "); } } System.out.println(); } } in.close(); } }
#include <iostream> #include<string> using namespace std; void ta1(int n) { for (int i = 0; i < n; i++) { cout << "* "; } //for (int i = n - 1-1 ; i >= 0; i--) { cout <<"*"; } cout << endl; } void sp(int n) { for (int i = 0; i < n; i++) cout << " "; } void ta(int n) { for (int i = 0; i < n; i++) { sp(n-i-1); ta1(i+1); } } int main() { int n; while(scanf("%d",&n)!=EOF){ ta(n); } }
#include <stdio.h> int main() { int a; while (scanf("%d", &a) != EOF) { for (int i = 0; i < a; i++) { //a-1-i会随着i变化,当输入4时,第一行打印4-1-i格空格 for (int j = 0; j < a-1-i; j++) //打印一个空格 printf(" "); for (int j = 0; j <= i; j++) //打印*和空格 printf("* "); printf("\n"); //换行 } } return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int n = 0; int i = 0; int j = 0; while (scanf("%d", &n) != EOF) { for (i = 0; i < n; i++) { //输出前面的空格 for (j = 0; j < n - i - 1; j++) { putchar(' '); } //输出后面的‘*’ for (j = 0; j <= i; j++) { putchar('*'); putchar(' '); } //换行输出下一行 putchar('\n'); } } return 0; }