7 条题解

  • 2
    @ 2024-7-11 14:22:11

    C++的,使用纯数学方法。

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,o,i,head,now,a=1,b;
    int main()
    {
    	scanf("%d",&n);
    	m=(n-1)*n/2+1;
    	o=(1+n)*n/2;
    	head=m;
    	now=head;
    	for (i=1;i<=o;++i)
    	{
    		printf("%d ",now);
    		if (b==a-1)
    		{
    			printf("\n");
    			b=0;
    			head=head-n+a;
    			now=head;
    			a++;
    		}
    		else
    		{
    			now=now+n-a+b+2;
    			b++;
    		}
    	}
    	return 0;
    }
    
    • 0
      @ 2025-7-12 9:09:42

      这道题肥肠煎蛋

      思路

      看最后一行,发现是1,3,6,10这样的数列,用 n 表示为 n(n+1)/2 n(n+1)/2 ,看第一列明显可以表示为 n(n+1)/2n+1n(n+1)/2-n+1 ,且数列是从左向右斜着递增,因此可得到以下代码

      #include<bits/stdc++.h>
      using namespace std;
      int n, a[10086];
      int main(){
      	cin >> n;
      	for(int i = 1; i <= n; i++)
      		a[i] = a[i-1] + i;
      	for(int i = 1; i <= n; i++){
      		for(int j = 1;j <= i;j++)
      			cout << a[n-i+j] - n + i << ' ';
      		cout << endl;
      	}
      	return 0;
      }
      • 0
        @ 2024-7-12 18:26:12

        #include<bits/stdc++.h> using namespace std; int a[21][21]; int k,n; int main() { cin>>n; int k=1; if(n1){ cout<<1; } if(n2){ cout<<2<<endl<<1<<" "<<3; } if(n3){ cout<<4<<endl<<2<<" "<<5<<endl<<1<<" "<<3<<" "<<6; } if(n4){ cout<<7<<endl<<4<<" "<<8<<endl<<2<<" "<<5<<" "<<9<<endl<<1<<" "<<3<<" "<<6<<" "<<10; } if(n5){ cout<<11<<endl<<7<<" "<<12<<endl<<4<<" "<<8<<" "<<13<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15; } if(n6){ cout<<16<<endl<<11<<" "<<17<<endl<<7<<" "<<12<<" "<<18<<endl<<4<<" "<<8<<" "<<13<<" "<<19<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<" "<<20<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15<<" "<<21; } if(n7){ cout<<22<<endl<<16<<" "<<23<<endl<<11<<" "<<17<<" "<<24<<endl<<7<<" "<<12<<" "<<18<<" "<<25<<" "<<endl<<4<<" "<<8<<" "<<13<<" "<<19<<" "<<26<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<" "<<20<<" "<<27<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15<<" "<<21<<" "<<28; } if(n8){ cout<<29<<endl<<22<<" "<<30<<endl<<16<<" "<<23<<" "<<31<<endl<<11<<" "<<17<<" "<<24<<" "<<32<<endl<<7<<" "<<12<<" "<<18<<" "<<25<<" "<<33<<endl<<4<<" "<<8<<" "<<13<<" "<<19<<" "<<26<<" "<<34<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<" "<<20<<" "<<27<<" "<<35<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15<<" "<<21<<" "<<28<<" "<<36; } if(n9){ cout<<37<<endl<<29<<" "<<38<<endl<<22<<" "<<30<<" "<<39<<endl<<16<<" "<<23<<" "<<31<<" "<<40<<endl<<11<<" "<<17<<" "<<24<<" "<<32<<" "<<41<<endl<<7<<" "<<12<<" "<<18<<" "<<25<<" "<<33<<" "<<42<<endl<<4<<" "<<8<<" "<<13<<" "<<19<<" "<<26<<" "<<34<<" "<<43<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<" "<<20<<" "<<27<<" "<<35<<" "<<44<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15<<" "<<21<<" "<<28<<" "<<36<<" "<<45; } if(n10){ cout<<46<<endl<<37<<" "<<47<<endl<<29<<" "<<38<<" "<<48<<endl<<22<<" "<<30<<" "<<39<<" "<<49<<endl<<16<<" "<<23<<" "<<31<<" "<<40<<" "<<50<<endl<<11<<" "<<17<<" "<<24<<" "<<32<<" "<<41<<" "<<51<<endl<<7<<" "<<12<<" "<<18<<" "<<25<<" "<<33<<" "<<42<<" "<<52<<endl<<4<<" "<<8<<" "<<13<<" "<<19<<" "<<26<<" "<<34<<" "<<43<<" "<<53<<endl<<2<<" "<<5<<" "<<9<<" "<<14<<" "<<20<<" "<<27<<" "<<35<<" "<<44<<" "<<54<<endl<<1<<" "<<3<<" "<<6<<" "<<10<<" "<<15<<" "<<21<<" "<<28<<" "<<36<<" "<<45<<" "<<55; } return 0; }

        • 0
          @ 2022-7-19 20:48:25
          #include<bits/stdc++.h>
          using namespace std;
          int main(){
          	int n;
          	cin>>n;
          	int a[100][100];
          	a[0][0]=1;
          	for(int i=1;i<n;i++){
          	a[0][i]=a[0][i-1]+i;//第一行,顺时针翻转九十度 
          	a[i][0]=a[i-1][0]+i+1;//列 
          	}
          	for(int i=1;i<n;i++){
          		for(int j=1;j<n;j++){
          			a[i][j]=a[i][j-1]+j+i;
          		}
          	}
          	for(int i=n;i>=0;i--){
          		for(int j=0;j<n-i;j++){
          			cout<<a[j][i]<<" ";
          		}
          		cout<<endl;
          	}
          }
          
          • -1
            @ 2023-7-17 9:44:32

            #include

            using namespace std;

            int main() { int n,i,j; cin >>n; for(i=1;i<=n;i++){ for(j=1;j<=i;j++){ cout <<0.5ii-ij+0.5jj+0.5i+0.5j+n(n-2i+2j-1)/2.0<<" "; } cout <<endl; } }

            • -1
              @ 2023-7-17 8:43:41
              #include <iostream>
              
              using namespace std;
              int a[11][11];
              int main()
              {
                  int n;
                  cin>>n;
                  a[n][1]=1;
                  int t=0;
                  for(int i=n;i>=1;i--)
                  {
                      a[i][1]=t+1;
              
                      int p=i;
                      for(int j=1;j<=n-i;j++)
                      {
              
                          a[p+1][j+1]=a[p][j]+1;
                          p++;
                      }
                       t=a[n][n-i+1];
                  }
                  for(int i=1;i<=n;i++)
                  {
                      for(int j=1;j<=n;j++)
                      {
                          if(a[i][j]==0)
                          {
                              break;
                          }
                          cout<<a[i][j]<<" ";
                      }
                      cout<<endl;
                  }
                  return 0;
              }
              
              • -1
                @ 2022-8-30 13:14:22
                n=int(input())
                a=int((n*(n-1))/2+1)
                print(a)
                for i in range(2,n+1,1):
                    a=a-(n-i+1)
                    print(a,end=" ")
                    b=a
                    for j in range(2,i+1,1):
                        b=b+(n-i+j)
                        print(b,end=" ")
                    print(" ")
                
                • 1

                信息

                ID
                68
                时间
                1000ms
                内存
                128MiB
                难度
                2
                标签
                递交数
                302
                已通过
                180
                上传者