点击这里更换您喜欢的皮肤wtboj 首页
请点击这里登入noios   首页 入门 c++讲义 入门教程视频 其他页面 入门视频 站务 公告 | 题库 记录 竞测 测试 闯关 作业 排名 团队 讨论 | 换肤 | 登入 注册  
News >>   新增功能:各团队管理员可以发布本团队作业了 ()

讨论 Discussion
 
舒服
#include <iostream>
#include <vector>
using namespace std;

int m;
vector<int> path;
void dfs(int remain, int start) {
  if (remain == 0) {
    cout << m << "=";
    for (size_t i = 0; i < path.size(); ++i) {
      if (i > 0) cout << "+";
      cout << path[i] << "*" << path[i];
    }
    cout << endl;
    return;
  }
  for (int i = start; i * i <= remain; ++i) {
    path.push_back(i);
    dfs(remain - i * i, i);
    path.pop_back();
  }
}

int main() {
  cin >> m;
  dfs(m, 1);
  return 0;
}

( )

此主题无回复显示
发布讨论主题 回复讨论主题
 Copyright wtboj © 2005-2006. www.wutuobang.date Powered by wtboj 关于 联系 帮助
 wtboj Information ---- Total Users : 1446 | Online Users / Processes : 0 / 37 | Processed Time : 484 ms | Server Time : 2026/10/28 23:44:34