首页 > 试题广场 >

K形图案

[编程题]K形图案
  • 热度指数:31574 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。

输入描述:

多组输入,一个整数(2~20)。



输出描述:
针对每行输入,输出用“*”组成的K形,每个“*”后面有一个空格。
示例1

输入

2

输出

* * * 
* * 
* 
* * 
* * * 
示例2

输入

3

输出

* * * * 
* * * 
* * 
* 
* * 
* * * 
* * * * 
示例3

输入

4

输出

* * * * * 
* * * * 
* * * 
* * 
* 
* * 
* * * 
* * * * 
* * * * * 
import java.util.*;
public class Main {
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count;
        while(scanner.hasNext()) {
            count = scanner.nextInt();
            for(int i=0;i<=count;i++) {
                for(int j=0;j<=count;j++) {
                    if(j<=count-i)
                        System.out.printf("* ");
                    else
                        System.out.printf(" ");
                }
                System.out.println();
            }
            for(int i=0;i<count;i++) {
                for(int j=0;j<=count;j++) {
                    if(j<=i+1)
                        System.out.printf("* ");
                    else
                        System.out.printf(" ");
                }
                System.out.println();
            }
        }
    }
}

好家伙,浪费这么长时间,就是因为每行最后还有空格,艹,把图案复制到编辑器里就能发现了
* * * * 
* * *  
* *   
*    
* *   
* * *  
* * * * 

编辑于 2021-03-17 20:44:53 回复(0)
#include<stdio.h>
int main()
{
    int n;
    while( scanf("%d",&n) != EOF )
    {
        for( int i = 0 ; i <= n ; i++ )
        {
            for( int j = i ; j <= n ; j++) printf("* ");
            printf("\n");  
        }    
        for( int i = 0 ; i < n ; i++ )
        {
            for( int m = i + 2 ; m > 0 ; m--) printf("* ");  
            printf("\n");  
        }   
    }
    return 0;
}

发表于 2022-06-17 08:33:28 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        // n ~ 1    n + 1 ~ 2
        for (int i = n; i >= 1; i -- )
        {
            for (int j = i + 1; j >= 1; j --) printf("* ");
            printf("\n");
        }
        // 1 个*
        printf("*\n");
        
        // 1 ~ n,  2 ~ n + 1
        for (int i = 1; i <= n; i ++ )
        {
            for (int j = 1; j <= i + 1; j ++ ) printf("* ");
            printf("\n");
        }
    }
}

发表于 2022-02-27 21:34:15 回复(0)
    int i=0,j=0,num;
    while(scanf("%d",&num)!=EOF)
    {
        getchar();
        for(i=1;i<=2*num+1;i++)
        {
            if(i<=num+1)
            {
                for(j=num+1;j>=i;j--)
                    printf("* ");
                for(j=i-1;j>0;j--)
                    printf("  ");
            }
            else
            {
                for(j=i-num;j>0;j--)
                    printf("* ");
                for(j=2*num+1-i;j>0;j--)
                    printf("  ");
            }
            printf("\n");
        }
    }
发表于 2020-04-01 18:33:00 回复(0)
#include<cstdio>
(802)#include<iostream>
using namespace std;
int main() {
    int n;
    while (cin >> n) {
        for (int i = n; i >= 1; i--) {
            for (int j = 0; j <= i; j++) {
                cout << "*0";
            }
            for (int h = i; h<n;h++) {
                cout << "0";
            }
            for (int h = i; h < n; h++) {
                cout << "0";
            }
            printf("\n");
        }
        cout << "*0";
        for (int i = 0; i < n;i++) {
            cout << "00";
        }
        printf("\n");
        for (int i = 1; i <= n; i++) {
            for (int j = 0; j <= i; j++) {
                cout << "*0";
            }
            for (int h = i; h < n;h++) {
                cout << "0";
            }
            for (int h = i; h < n; h++) {
                cout << "0";
            }
            printf("\n");
        }
    }
    return 0;
} 

编辑于 2020-03-20 14:49:11 回复(1)
#include <stdio.h>

int main(void)
{
    int i, j, k, t;
    
    while (scanf("%d", &k) != EOF && (k >= 2 && k <= 20))
    {
        for (i = 0; i <= k; i++)
        {
            for (j = i; j <= k; j++)
            {
                printf("* ");
            }
            for (t = 0; t < i; t++)
            {
                putchar(' ');//K型图案后面空格好多!!!!!!!!!!
            }
            putchar('\n');
        }
        for (i = 1; i <= k; i++)
        {
            for (j = 0; j <= i; j++)
            {
                printf("* ");
            }
            for (t = k; t > i; t--)
            {
                putchar(' ');//K型图案后面空格好多!!!!!!!!!!
            }
            putchar('\n');
        }
    }
    
    return 0;
}
//这题服了;
发表于 2020-05-22 14:56:48 回复(0)
每行除了基本的星号加空格之外还要多输出一些空格,坑。。。

编辑于 2021-02-05 18:50:03 回复(3)
#include <cstdio>
int main()
{
    int a;
    while(~scanf("%d",&a))
    {
        for(int i=a;i>0;--i)//上半部分 a行
        {
            for(int j=0;j<=i;++j)
                printf("* ");
            for(int k=0;k<a-i;++k)//这是一个坑 需要输出空格
                printf(" ");
            printf("\n");
        }
        for(int i=0;i<=a;++i)//下半部分 a+1行
        {
            for(int j=0;j<=i;++j)
                printf("* ");
            for(int k=0;k<a-i;++k)//这是一个坑 需要输出空格
                printf(" ");
            printf("\n");
        }
    }
    return 0;
}

发表于 2020-03-26 10:53:36 回复(6)
#include <stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
        int i,j;
        for(i=0;i<2*n+1;i++){
            for(j=0;j<=n;j++){
                if(j==0||i+j<=n||(i>=n&&i-j>=n)){
                    printf("* ");
                }else{
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
}

发表于 2020-04-11 09:07:06 回复(0)
#include <stdio.h>

int main() {
    int input,i,j,n,tmp;
    while(scanf("%d",&input)!=EOF)
    {
        for(n=0;n<input*2+1;n++)
        {
            tmp=input+1-n;
            if(n>=input+1)
            {
                tmp=n-(input-1);
            }
            for(i=0;i<tmp;i++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2022-11-03 17:34:40 回复(0)
#include <stdio.h>
//这个题好坑
int main() {
    int n = 0;
//如果输入的是n,其实每行打印n+1组字符(*和空格)
    while (scanf("%d", &n) != EOF) {
        int i = 0;
        for (i = n; i >= 0; i--) {
            int j = 0;
            for (j = 0; j <= i; j++) {
                printf("* ");
            }
//*的后面还有空格-这个比较坑
            for (j = i; j < n; j++) {
                printf(" ");
            }
            printf("\n");
        }
        for (i = 1; i <= n; i++) {
            int j = 0;
            for (j = 0; j <= i; j++) {
                printf("* ");
            }
//*的后边还有空格-这个比较坑
            for (j = i; j < n; j++) {
                printf(" ");
            }
            printf("\n");
        }
    }
    return 0;
}

发表于 2024-01-09 12:46:01 回复(0)
while True:
    try:
        n=int(input())
        for i in range(n+1,0,-1):
            print('* '*i)
        for i in range(2,n+2):
            print('* '*i)  
    except:
        break   

发表于 2023-01-20 11:21:57 回复(0)
while True:
    try:
        n = int(input())
        
        for i in range(-n,n+1):
            print('* '*(abs(i)+1))
    except:
        break

发表于 2022-10-07 22:16:27 回复(0)
#include <stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int z = n;
        while (z >= 0) // 上半部分
        {
            for (int i = z; i >= 0; i--)
            {
                printf("* ");
            }
            printf("\n");
            z--;
        }
        int x = n - 1;
        int y = 1;
        while (y <= n) // 下半部分
        {
            for (int a = x; a <= n; a++)
            {
                printf("* ");
            }
            printf("\n");            
            y++;
            x--;
        }
    }
    return 0;
}
发表于 2025-06-21 16:07:45 回复(0)
为什么你们一定要把简单的事情搞这么复杂!!!
#include <stdio.h>

int main() {
 
    int c = 0;

    scanf("%d",&c);

    for(int i = c + 1; i>0 ; i --){

         for(int j = i ; j>0 ; j--){

            printf("*");
            printf(" ");

         }
         printf("\n");

    }

    for(int s = 2 ; s<= c+1 ; s++){
       
            for(int m = 2 ; m<= s+1 ; m++){
       
            printf("*");
            printf(" ");

    }
        printf("\n");
    }

    return 0;
}

发表于 2025-04-21 19:33:47 回复(0)
while 1:
    try:
        a=int(input())
        for i in range(a):
            print('* '*(a-i+1))
        for i in range(1,a+2):
            print('* '*i)
    except:
        break

发表于 2025-02-24 16:08:11 回复(0)
#include<stdio.h>
int main()
{
    int n=0;
    int i=0;
    int j=0;
    int k=0;
    while(scanf("%d",&n)!=EOF)
    {
       for(i=0;i<2*n+1;i++)
       {
          if(i<n+1)
          {
            for(j=i;j<n+1;j++)
            {
              printf("* ");
            }
          }
          else 
          {
             for(j=n;j<=i;j++)
             {
                printf("* ");
             }
          }          
          printf("\n");
        }
    }
    return 0;
}

发表于 2024-12-16 15:01:58 回复(0)
#include <stdio.h>
int main() {
    int a=0;
    while(scanf("%d",&a)!=EOF){
        for(int i=1;i<=a+1;i++){
            for(int j=a;j>=i-1;j--){
                printf("* ");
            }
            printf("\n");
        }
        for(int i=1;i<=a;i++){
            for(int j=1;j<=i+1;j++){
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2024-12-02 20:46:23 回复(0)
int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        int j = 0;
        for (i = 0; i < n+1; i++)
        {
            for (j = 0; j < n+1 - i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        for (i = 1; i < n+1; i++)
        {
            for (j = 1; j <= i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
发表于 2024-11-25 20:11:45 回复(0)
while True:
    try:
        n = int(input())

        for i in range(n, -1, -1):
            temp = "* " * (i) + "*"
            m = 2 * n - 1
            print(f"{temp:<{n*2+2}}")  #  ^居中,>居右,<居左对齐
        for i in range(1, n+1):
            temp = "* " * (i) + "*"
            m = 2 * n - 1
            print(f"{temp:<{n*2+2}}")  #  ^居中,>居右,<居左对齐
    except Exception as e:
        break

发表于 2024-09-28 19:03:30 回复(0)

问题信息

上传者:牛客309119号
难度:
162条回答 3445浏览

热门推荐

通过挑战的用户

查看代码
K形图案