Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
108730 | 梁乃元 | 拆分自然数 | C++ | 通过 | 100 | 290 MS | 260 KB | 601 | 2023-11-04 09:47:57 |
#include<bits/stdc++.h> using namespace std; int pl [114514] = { 1 } ; int x , tot = 0 ; void dfs ( int a , int k ) { for ( int i = pl [k - 1] ; i <= a ; i ++ ) { if ( i < x ) { a -= i ; pl [k] = i ; if ( a == 0 ) { cout << x << '=' ; for ( int j = 1 ; j < k ; j ++ ) { cout << pl [j] << '+' ; } cout << pl [k] << endl ; tot += 1 ; return ; } else { dfs ( a , k + 1 ) ; } a += i ; pl [k] = 0 ; } } return ; } int main() { cin >> x ; dfs( x,1 ) ; cout << tot << endl ; return 0 ; }