19 条题解

  • 24
    @ 2022-8-17 21:38:42

    这一题会稍微复杂一些,看看解题思路吧~

    1. 首先外循环是从 n - 1 ~ 0,因为考虑到空格的数量是从高到低的
    2. 内循环1:从 1 ~ i,每一次输出空格*1
    3. 内循环2:可以定义一个变量 s 存储输出的数字,同时发现 s * 2 - 1 就是最大值,所以是从 1 ~ s * 2 - 1,每次输出星号
    4. 每一次记得输出换行并且将 s 增加 1 哦

    看看代码吧~(保证AC通过!)

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, s = 1;
        cin >> n;
        for (int i = n - 1; i >= 0; i--)
        {
            for (int j = 1; j <= i; j++) cout << " ";
            for (int j = 1; j <= s * 2 - 1; j++) cout << s;
            cout << endl;
            s += 1; 
        }
        return 0;
    }
    
    • 2
      @ 2024-2-6 16:00:47
      #include <bits/stdc++.h>
      using namespace std;
      int main(){
          int N;
          cin >> N;
          for (int i = 1;i <= N;i++){
              for (int j = 1;j <= N-i;j++){
                  cout << " ";
              }
              for (int j = 1;j <= 2*i-1;j++){
                  cout << i;
              }
              cout << endl;
          }
          return 0;
      }
      
      • 2
        @ 2024-1-22 19:43:31
        #include <bits/stdc++.h>
        using namespace std;
        int main(){
            int n;
            cin >> n;
            for (int i = 1;i <= n;i++){
                for (int j = 1;j <= n-i;j++){
                    cout << " ";
                }
                for (int j = 1;j <= 2*i-1;j++){
                    cout << i;
                }
                cout << endl;
            }
            return 0;
        }
        
        • 2
          @ 2023-10-14 21:48:16

          这道题比上一道复杂一点,先看空格数吧,如果你数学基础好就可以知道这个规律是n-i,其他的很简单就不多说了代码放下面了,全AC

          #include <iostream>
          using namespace std;
          int main()
          {
              int n;
              cin>>n;
              int x=1; 
              for (int i=1;i<=n;i++)
              {
                  for (int j=1;j<=n-i;j++)
                  {
                      cout<<" ";
                  }
                  for (int k=1;k<=x;k++)
                  {
                      cout<<i;
                  }
                  cout<<endl;
                  x+=2;
              }
              return 0;
          }
          
          
          • 1
            @ 2023-6-9 6:57:29

            和P47思路一样

            #include<bits/stdc++.h>
            using namespace std;
            int main()
            {
                int n;
                cin>>n;
                for (int i=1;i<=n;i++)
                {
                    for (int j=1;j<=n-i;j++)
                        cout<<" ";
                    for (int j=1;j<=i*2-1;j++)
                        cout<<i;
                    cout<<'\n';
                }
                return 0;
            }
            • 0
              @ 2024-2-26 16:38:24

              Lv7的超级AC代码,可复制:

              #include<iostream>
              using namespace std;
              int main(){int a,b,c;cin>>a;for(int b=1;b<=a;b++){for(int c=1;c<=a-b;c++){cout<<' ';}for(int c=1;c<=2*b-1;c++){cout<<b;}cout<<'\n';}}
              
              • 0
                @ 2023-8-10 19:46:47
                #include <bits/stdc++.h>
                using namespace std;
                int main()
                {
                    int n, s = 1;
                    cin >> n;
                    for (int i = n - 1; i >= 0; i--)
                    {
                        for (int j = 1; j <= i; j++) cout << " ";
                        for (int j = 1; j <= s * 2 - 1; j++) cout << s;
                        cout << endl;
                        s += 1; 
                    }
                    return 0;
                }
                已AC
                
                • 0
                  @ 2023-7-22 15:10:53
                  #include <cstdio>
                  using namespace std;
                  int main(){
                      int n;
                      scanf("%d",&n);
                      for(int i=1;i<=n;i++){
                          for(int j=1;j<=n-i;j++)printf("%c",' ');
                          for(int j=1;j<=i*2-1;j++)printf("%d",i);
                          printf("\n");
                      }
                      return 0;
                  }
                  
                  • 0
                    @ 2023-5-26 20:14:29

                    这种方法有点复杂(小白用) 但是好理解

                    #include <iostream>
                    using namespace std;
                    int main()
                    {
                        int n, k = 1 ,s = 1;
                        cin >> n;
                        int g = n - 1;
                        for (int i = 1; i <= n; i++)
                        {
                            for (int j = 1; j <= g; j++)
                            {
                                cout << " ";
                            }
                            for (int j = 1; j <= k; j++)
                            {
                                cout << s;
                            }
                            cout << endl;
                            k += 2;
                            g -= 1; 
                            s += 1;       
                        }
                        return 0;
                    }
                    
                    • 0
                      @ 2023-5-3 21:31:06

                      #include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n-i;j++){ cout<<" "; } for(int k=1;k<=i+i-1;k++){ cout<<i; } for(int l=1;l<=n-i;l++){ cout<<" "; } cout<<endl; } return 0;

                      
                      
                      • 0
                        @ 2023-4-6 21:36:28

                        三个要点。 1 使用一个局外自增变量。 2 把第一层循环设为自减,方便空格输出。 3 找正确的输出最大值 贴心的附上代码~~😊😊😊😁😁😁

                        #include<bits/stdc++.h>
                        using namespace std;
                        int main()
                        {
                            int n;
                            cin>>n;
                            int a = 1;
                            for(int i = n-1;i >= 0 ; i--)
                            {
                                for(int j = 1 ; j <= i;j++)cout<<" ";
                                for(int j = 1 ; j <=a*2-1;j++)cout<<a;
                                a++;
                                cout<<endl;
                            }
                        }
                        
                        • 0
                          @ 2023-3-13 21:10:02

                          这道有点难,但只给出了两星,前面的很简单但给的星很多,不过,跟着我的思路走,一定能拿全AC

                          #include <bits/stdc++.h>//这里也可以用<iostream>,也是AC
                          using namespace std;
                          int main()
                          {
                              int n, s = 1;
                              cin >> n;
                              for (int i = n - 1; i >= 0; i--)//这里,我们的解题方法就跟【47】的一样了,将*换成i,只有一个塔
                              {
                                  for (int j = 1; j <= i; j++) 
                                  {    
                                      cout << " ";
                                  }  
                                  for (int j = 1; j <= s * 2 - 1; j++) 
                                  {
                                      cout << s;
                                  }
                                  cout << endl;
                                  s += 1; 
                              }
                              return 0;
                          }
                          
                          • 0
                            @ 2022-11-20 15:34:36

                            跟上一题有点相似,看代码吧(AC过的,老样子,x和y)

                            #include <iostream>
                            using namespace std;
                            int x, y;//先定两个变量
                            
                            int main()
                            {
                            	cin >> x >> y;
                            	y = 1;
                            	for (int i = 1; i <= x; i++)
                            	{
                            		for (int j = 1; j <= x - i; j++)
                            		{
                            			cout << " ";
                            		}
                            		for (int j = 1; j <= y; j++)
                            		{
                            			cout << i;
                            		}
                            		cout << endl;//换行
                            		y += 2;//别忘了要加2
                            	}
                            	return 0;
                            }
                            
                            • 0
                              @ 2022-10-7 16:27:18
                              #include <bits/stdc++.h>
                              using namespace std;
                              int main()
                              {
                                  int n,sum=0,j,i,s,a;
                                  cin>>n;
                                  //跟题2方法差不多,只不过把*换成i,而且这只要一个塔。
                                  for (i=1;i<=n;i++)
                                  {
                                      for(j=1;j<=n-i;j++) cout<<" ";
                                      for(j=1;j<=i*2-1;j++) cout<<i;
                                      for(j=1;j<=n-i;j++) cout<<" ";
                                      cout<<endl;
                                  }
                                  return 0;
                              }
                              
                              • 0
                                @ 2022-7-1 20:05:29
                                #include <bits/stdc++.h>
                                using namespace std;
                                int  n,x;
                                int main()
                                {
                                	cin>>n;
                                	x=1;
                                	for(int i=1;i<=n;i++)
                                	{
                                		for(int j=1;j<=n-i;j++)
                                		{
                                			cout<<" ";
                                		}
                                		for(int a=1;a<=x;a++)
                                		{
                                			cout<<i;
                                		}
                                		cout<<endl;
                                		x+=2;
                                	}
                                	return 0;
                                }
                                
                                • -1
                                  @ 2023-12-18 20:39:17
                                  #include<iostream>
                                  using namespace std;
                                  int main(){
                                  	int n;
                                  	cin>>n;
                                  	for(int i=1;i<=n;i++){
                                  		for(int j=n;j>i;j--){
                                  			cout<<' ';
                                  		}
                                  		for(int j=1;j<=i*2-1;j++){
                                  			cout<<i;
                                  		}
                                  		cout<<endl;
                                  	}
                                  	return 0;
                                  }
                                  
                                  • -1
                                    @ 2023-11-19 9:26:45
                                    #include <bits/stdc++.h>
                                    using namespace std;
                                    int main()
                                    {
                                        ios::sync_with_stdio(false);
                                        cin.tie(nullptr);
                                        cout.tie(nullptr);
                                        int n;
                                        cin >> n;
                                        for (int i = 1; i <= n; i++)
                                        {
                                            for (int j = 1; j <= n - i; j++)
                                                cout << " ";
                                            for (int j = 1; j <= 2 * i - 1; j++)
                                                cout << i;
                                            cout << endl;
                                        }
                                        return 0;
                                    }
                                    
                                    • -3
                                      @ 2024-1-29 20:44:42
                                      #include <iostream>
                                      using namespace std;
                                      int main()
                                      {
                                          int N;
                                          cin >> N;
                                          for (int i = 1;i <= N;i++)
                                          {
                                              for (int j = 1;j <= N-i;j++)
                                              {
                                                  cout << " ";
                                              }
                                              for (int j = 1;j <= 2*i-1;j++)
                                              {
                                                  cout << i;
                                              }
                                              cout << endl;
                                          }
                                          return 0;
                                      }
                                      //已AC
                                      //仅供参考,请不要抄袭
                                      
                                      • @ 2024-2-8 15:23:21

                                        //仅供参考,请不要抄袭😕

                                    • -6
                                      @ 2022-5-26 20:42:36

                                      这道题类似于【P47】打印星号三角行,只需把三个三角行变为1个,即在外层for循环里,执行前两个for循环,然后把第二个for循环当中输出星号换为当前行数i,输出一个三角形即可。 核心代码:

                                      for (int i = 1; i <= n; i++)
                                          {
                                              for (int j = 1; j <= n - i; j++) cout << " ";  //每行第一部分的空格
                                              for (int j = 1; j <= 2 * i - 1; j++) cout << i; //每行第二部分的数字
                                              cout << endl; //每输出完一行就换行
                                          }
                                      
                                      • 1

                                      【入门】字符图形9-数字正三角

                                      信息

                                      ID
                                      49
                                      时间
                                      1000ms
                                      内存
                                      16MiB
                                      难度
                                      3
                                      标签
                                      递交数
                                      1379
                                      已通过
                                      874
                                      上传者