2 条题解

  • 0
    @ 2026-8-7 15:29:24
    #include <iostream>
    #include <string>
    using namespace std;
    
    string compute(int n) {
      if (n == 1)
        return "1";
    
      return compute(n - 1) + " " + to_string(n) + " " + compute(n - 1);
    }
    
    int main() {
    
      int n;
      cin >> n;
    
      cout << compute(n) << "\n";
    
      return 0;
    }
    
    • 0
      @ 2026-8-7 15:19:02

      注意到n16n\leq 16,且只有一个数字的输入,考虑打表。

      直接使用string的加法功能直接暴力计算即可,生成代码如下:

      #include<bits/stdc++.h>
      using namespace std;
      string s[20]; 
      int main()
      {
      	s[1]="1";
      	cout<<"\""<<s[1]<<"\""<<",";
      	for(int i=2;i<=16;i++)
      	{
      		if(i>=10)s[i]=s[i-1]+" 1"+char(i%10+'0')+' '+s[i-1];
      		else s[i]=s[i-1]+' '+char(i%10+'0')+' '+s[i-1];
      		cout<<"\""<<s[i]<<"\""<<',';
      	}
      }
      

      具体打出来的东西如下:

      过于猎奇,不过多展示
      
      • 1

      信息

      ID
      12453
      时间
      2000ms
      内存
      1024MiB
      难度
      3
      标签
      递交数
      40
      已通过
      24
      上传者