10 solutions

  • 18
    @ 2024-5-15 14:05:00
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int n;
    	cin>>n;
    	n=n/2+1;
    	for(int i=1;i<=n;i++)
    	{
    		//空格的数目(0,1,2),i(1,2,3)
    		for(int j=1;j<i;j++)
    		{
    			cout<<" ";
    		}
    		//*的数目(5,3,1)=>(6,4,2),i(1,2,3)
    		for(int j=1;j<=2*n-2*i+1;j++)
    		{
    			cout<<"*";
    		}		
    		cout<<endl;
    	}
    	for(int i=2;i<=n;i++)
    	{
    		//空格的数目(2,1,0),i(1,2,3)
    		for(int j=1;j<=n-i;j++)
    		{
    			cout<<" ";
    		}
    		//*的数目(1,3,5),i(1,2,3)
    		for(int j=1;j<=2*i-1;j++)
    		{
    			cout<<"*";
    		} 
    		cout<<endl;
    	}
    	return 0;
    }
    
    
    • 4
      @ 2025-10-26 13:54:38
      #include<bits/stdc++.h>
      using namespace std;
      
      int main()
      {
      	int n;
      	cin>>n;
      	int h=n/2+1;
      	int x=1,y=h;
      	for(int i=1;i<=h;i++)
      	{
      		for(int j=1;j<=n;j++)
      		{
      			if(abs(i-x)+abs(j-y)<=h-1)
      			{
      				cout<<"*";
      			}
      			else
      			{
      				cout<<" ";
      			}
      		}
      		cout<<endl;
      	}
      	x=n;
      	for(int i=h+1;i<=n;i++)
      	{
      		for(int j=1;j<=n;j++)
      		{
      			if(abs(i-x)+abs(j-y)<=h-1)
      			{
      				cout<<"*";
      			}
      			else
      			{
      				cout<<" ";
      			}
      		}
      		cout<<endl;
      	}
      	return 0;
      }
      
      
      • 1
        @ 2026-1-18 15:50:15

        沙漏

        • 1
          @ 2025-12-6 14:54:53
          #include<bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n;
              cin>>n;
              int up=n/2+1;
              int down=n/2;
              for(int i=1;i<=up;i++)
              {
                  //左侧空格
                  for(int j=1;j<i;j++)
                  {
                      cout<<" ";
                  }
                  //倒三角
                  for(int k=(2*up+1)-(2*i);k>=1;k--)
                  {
                      cout<<"*";
                  }
                  cout<<endl;
              }
              for(int i=1;i<=down;i++)
              {
                  //左侧空格
                  for(int j=1;j<=down-i;j++)
                  {
                      cout<<" ";
                  }
                  //正等腰梯形
                  for(int k=1;k<=2*i+1;k++)
                  {
                      cout<<"*";
                  }
                  cout<<endl;
              }
              return 0;
          }
          
          • 0
            @ 2025-10-25 19:35:19
            #include<bits/stdc++.h>
            using namespace std;
            int main()
            {
            	int n;
            	cin>>n;
            	int m=n;
            	n=n/2+1;
            	int x=1,y=n;
            	for(int i=1;i<=n;i++)
            	{
            		for(int j=1;j<=m;j++)
            		{
            			if(abs(i-x)+abs(j-y)<n)	cout<<"*";
            			else cout<<" ";	
            		}
            		cout<<endl;
            	} 
            	x=m;
            	for(int i=n+1;i<=m;i++)
            	{
            		for(int j=1;j<=m;j++)
            		{
            			if(abs(i-x)+abs(j-y)<n)	cout<<"*";
            			else cout<<" ";	
            		}
            		cout<<endl;
            	} 
            	return 0;
            }
            
            
            • 0
              @ 2025-10-24 15:59:00
              #include<bits/stdc++.h>
              using namespace std;
              int main()
              {
              	int n;
              	cin>>n;
              	int x=1; 
              	int y=n/2+1;
              	int c=n/2+1;
              	for(int i=1;i<=c;i++)
              	{
              		for(int j=1;j<=n;j++)
              		{
              			if(abs(i-x)+abs(j-y)<c) cout<<"*";
              			else cout<<" ";
              		}	
              		cout<<endl;
              	} 
              	x=n;  
              	for(int i=y+1;i<=n;i++)
              	{
              		for(int j=1;j<=n;j++)
              		{
              			if(abs(i-x)+abs(j-y)<c) cout<<"*";
              			else cout<<" ";
              		}	
              		cout<<endl;
              	} 
              	return 0;
              }
              
              
              • -2
                @ 2025-10-24 16:09:43

                基础代码无需复杂操作:

                #include<iostream>
                #include<stdio.h>
                #include<string.h>
                #include<math.h>
                #include<algorithm>
                #include<queue>
                using namespace std;
                typedef long long int lint;
                const int N=1e5+1,inf=0x3F3F3F3F;
                
                int n;
                
                int main(){
                	//freopen("1.in","r",stdin);
                	cin>>n;
                	//步骤一:构建一个倒三角 
                	for(int i=n;i>=1;i-=2){
                		for(int j=1;j<=(n-i)/2;j++) cout<<' '; //需要先填充空格   因为空格 + 当前层的字符数量 = 我们的最外层字符数量
                		// 所以可以直接求空格数量 由于我们只需要填充左侧的空格,所以还需要除以2 
                		for(int j=1;j<=i;j++ ) cout<<'*';//输出字符 
                		cout<<endl;
                	}
                	//步骤二:构建无顶部的正三角型,方法不变 
                	for(int i=3;i<=n;i+=2){
                		for(int j=1;j<=(n-i)/2;j++) cout<<' ';
                		for(int j=1;j<=i;j++) cout<<'*';
                		cout<<endl;
                	}
                	//这里就完成了沙漏的输出,基础代码无需复杂操作 
                	return 0;
                }
                
                
                
                • -3
                  @ 2024-12-7 20:13:01
                  #include<bits/stdc++.h>
                  using namespace std;
                  int main(){
                  	int n;
                  	int jishu=1;
                  	cin>>n;
                  	for(int i=1;i<=n/2+1;i++)
                  	{
                  		for(int j=1;j<i;j++)
                  		{
                  			cout<<" ";
                  		}
                  		for(int j=1;j<=n-2*i+2;j++)
                  		{
                  			cout<<"*";
                  		}
                  		cout<<endl;
                  	}
                  	for(int i=1;i<=n/2;i++)
                  	{
                  		for(int j=1;j<=n/2-i;j++)
                  		{
                  			cout<<" ";
                  		}
                  		for(int j=1;j<=2*i+1;j++)
                  		{
                  			cout<<"*";
                  		}
                  		cout<<endl;
                  	}
                  	return 0;
                  }
                  
                  
                  • -3
                    @ 2024-11-10 13:52:49
                    #include<bits/stdc++.h>
                    using namespace std;
                    int main()
                    {
                    	int n;
                    	cin>>n;
                    	n=n/2+1;
                    	for(int i=1;i<=n;i++) //枚举倒三角的i行 
                    	{
                    		//1.先输出空格
                    		for(int j=1;j<i;j++)
                    		{
                    			cout<<" ";
                    		}
                    		for(int j=2*n+1-2*i;j>=1;j--)
                    		{
                    			cout<<"*";	
                    		} 
                    		cout<<endl;
                    	}
                    	for(int i=2;i<=n;i++)
                    	{
                    		for(int j=1;j<=n-i;j++)
                    		{
                    			cout<<" ";
                    		}
                    		for(int j=1;j<=2*i-1;j++)
                    		{
                    			cout<<"*";
                    		}
                    		cout<<endl;
                    	}
                    	return 0;
                    }
                    
                    • -3
                      @ 2024-10-26 10:52:12
                      #include<bits/stdc++.h>
                      using namespace std;
                      int main()
                      {
                      	int n;
                      	cin>>n;
                      	n=n/2+1;
                      	for(int i=1;i<=n;i++) {
                      		for(int j=1;j<i;j++){
                      			cout<<" ";
                      		}
                      		for(int j=2*n+1-2*i;j>=1;j--){
                      			cout<<"*";	
                      		} 
                      		cout<<endl;
                      	}
                      	for(int i=2;i<=n;i++){
                      		for(int j=1;j<=n-i;j++){
                      			cout<<" ";
                      		}
                      		for(int j=1;j<=2*i-1;j++){
                      			cout<<"*";
                      		}
                      		cout<<endl;
                      	}
                      	return 0;
                      }
                      
                      • 1

                      Information

                      ID
                      67
                      Time
                      1000ms
                      Memory
                      256MiB
                      Difficulty
                      1
                      Tags
                      (None)
                      # Submissions
                      144
                      Accepted
                      67
                      Uploaded By