多组输入,一个整数(2~20)。
针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。
2
* * * * * * * * *
3
* * * * * * * * * * * * * * * *
4
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
* 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();
List<String> remember = new ArrayList<>(n);
for (int i = 1; i <=n+1; i++) {
String str = String.join("",Collections.nCopies(n+1-i," "));
str+=String.join("",Collections.nCopies(i,"* "));
remember.add(str);
}
boolean flag = true;
for (int i = 0; i >=0 ;) {
if (i==remember.size()-1)flag=false;
System.out.println(remember.get(i));
i= flag?++i:--i;
}
}
}
} #include<iostream>
using namespace std;
//分为上下两个金字塔
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n+1;i++)
{//上
for(int j=0;j<(n-i);j++)
cout<<" ";
for(int j=0;j<i+1;j++)
cout<<"* ";
cout<<endl;
}
for(int i=n;i>0;i--)
{//下
for(int j=0;j<(n-i+1);j++)
cout<<" ";
for(int j=0;j<i;j++)
cout<<"* ";
cout<<endl;
}
}
return 0;
}
#include<stdio.h>
int main()
{
int n;
while( scanf("%d",&n) != EOF )
{
for( int i = 0 ; i < ( n + 1 ) ; i++ ) //i=0,1,2
{
for( int j = i ; j < n ; j++ ) printf(" "); //j=0~n,1~n,2~n
for( int j = i ; j >= 0 ; j-- ) printf("* "); //j=0,1~0,2~0
printf("\n");
}
for( int i = 0 ; i < n ; i++ ) //i=0,
{
for( int j = i ; j >= 0 ; j-- ) printf(" "); //j=0,
for( int j = i ; j < n ; j++ ) printf("* "); //j=0~n,
printf("\n");
}
}
return 0;
} #include<stdio.h>
int main(void)
{
int num,i,j;
while(scanf("%d",&num)!=EOF)
{
for(i=0;i<num;i++)
{
for(j=num-1;j>=i;j--)//上面的三角形每行要多出一个空格
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
for(i=0;i<num+1;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=num+1;j>i;j--)
{
printf("* ");
}
printf("\n");
}
}
return 0;
} while True:
try:
n = eval(input())
l= [] # 输入 4 获取[1,2,3,4,5,4,3,2,1]
for i in range(1,n +1): # [1, 2, 3, 4]
l.append(i)
list_2 = l[::-1] # 把[1,2,3,4]倒序赋值给list_2
list_3 = l+[n+1]+list_2 #拼接为 [1,2,3,4]+[5]+[4,3,2,1]
for i in list_3: # [123454321]
print(' '*(n-i+1)+'* ' *i) # 这里要用+号,不能用,号。如果用逗号,要sep=''。
except:
break
while True:
try:
n = int(input())
for i in range(1,2*n+2):
if i <= n+1:
print(" "*(n+1-i)+"* "*i)
else:
print(" "*(i-(n+1))+"* "*((n+1)-(i-(n+1))))
except:
break #include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n-i;j++){
printf(" ");
}
for(j=0;j<i+1;j++){
printf("* ");
}
printf("\n");
}
for(i=0;i<=n;i++){
printf("* ");
}
printf("\n");
for(i=n+1;i<2*n+1;i++){
for(j=0;j<i-n;j++){
printf(" ");
}
for(j=0;j<2*n+1-i;j++){
printf("* ");
}
printf("\n");
}
}
} #include <cstdio>
int main()
{
int a;
while(~scanf("%d",&a))
{
for(int i=0;i<=a;++i)//a+1行 上半部分
{
for(int k=0;k<a-i;++k)//空格
printf(" ");
for(int j=0;j<=i;++j)//*与空格
printf("* ");
printf("\n");
}
for(int i=a;i>0;--i)//a行 下半部分
{
for(int k=0;k<=a-i;++k)
printf(" ");
for(int j=0;j<i;++j)
printf("* ");
printf("\n");
}
}
return 0;
} #include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin >> n){
for(int i = 1; i <= n; i++){
for(int j = 0; j <= n - i; j++)
cout << " ";
for(int k = 0; k < i; k++)
cout << "* ";
cout << endl;
}
for(int i = 1; i <= n + 1; i++)
cout << "* ";
cout << endl;
for(int i = 1; i <= n; i++){
for(int j = 0; j < i; j++)
cout << " ";
for(int k = 0; k <= n - i; k++)
cout << "* ";
cout << endl;
}
}
return 0;
}
/*思路 : 可以分成两个部分来看 上面是n行 下面是n+1行
for(j=0;j<n-i;j++)
//如果这里要打印四个空格 4-0=4 三个空格4-1=3 两个空格4-2=2
for(j=0;j<=i;j++)
//因为这里j都是每次从0开始的
//当i为0的时候打印零个 为1的时候打印一个 为2的时候打印两个
//......
//i随着变化而变化
for(j=0;j<i;j++)
//打印空格
//当i为0的时候不打印 当i为1的时候打印一个空格
//当i为2的时候打印两个 ......
for(j=0;j<n+1-i;j++)
//这里是因为是n+1行 所以要写成n+1
//这里是5的时候 i为0 就打印五个
//为4的时候 i为1 打印四个
//为3的时候 i为2 打印三个
//......
*/
# include <stdio.h>
int main ()
{
int n = 0;
while(scanf("%d",&n)!=EOF)
{
int i = 0;
for(i = 0; i<n; i++)
{
//上半部分
int j = 0;
//先打印空格
for(j=0;j<n-i;j++)
//如果这里要打印四个空格 4-0=4 三个空格4-1=3 两个空格4-2=2
//......
{
printf(" ");
}
//接下来打印 空格+星号
for(j=0;j<=i;j++)
//因为这里j都是每次从0开始的
//当i为0的时候打印零个 为1的时候打印一个 为2的时候打印两个
//......
//i随着变化而变化
{
printf("* ");
}
printf("\n");
}
//下半部分
//n+1 行
//依旧是有空格加型号组成的
for(i=0;i<n+1;i++)
{
int j = 0;
for(j=0;j<i;j++)
//打印空格
//当i为0的时候不打印 当i为1的时候打印一个空格
//当i为2的时候打印两个 ......
{
printf(" ");
}
for(j=0;j<n+1-i;j++)
//这里是因为是n+1行 所以要写成n+1
//这里是5的时候 i为0 就打印五个
//为4的时候 i为1 打印四个
//为3的时候 i为2 打印三个
//......
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
#include<stdio.h>
int main()
{
int n=0;
int i=0;
int k=0;
int j=0;
int m=0;
char ch1='*';
char ch2=' ';
while(~scanf("%d",&n))
{
for(i=1;i<=n;i++)
{
for(k=0;k<n+1-i;k++)
printf("%c",ch2);
for(j=0;j<i;j++)
printf("%c ",ch1);
printf("\n");
}
for(m=0;m<n+1;m++)
printf("%c ",ch1);
printf("\n");
for(i=1;i<=n;i++)
{
for(k=1;k<=i;k++)
printf("%c",ch2);
for(j=n;j>=i;j--)
printf("%c ",ch1);
printf("\n");
}
}
return 0;
} #include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while(cin >> n) {
n++;
for(int i=1;i<=n*2-1;i++) {
int spaceNum = abs(i-n);
int starNum = n-spaceNum;
for(int j=0;j<spaceNum;j++)
cout << " ";
for(int j=0;j<starNum;j++)
cout << "* ";
cout << endl;
}
}
return 0;
}