Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
108597 | 梁乃元 | 拆分自然数 | C++ | 解答错误 | 0 | 242 MS | 256 KB | 620 | 2023-11-04 09:06:01 |
# include <bits/stdc++.h> using namespace std ; int cz [114514] = {1} ; int x , tot = 0 ; void splt ( int a , int k ) { for ( int i = cz [k - 1] ; i <= a ; i ++ ) { if ( i < x ) { cz [k] = i ; a -= i ; if ( a == 0 ) { cout << x << '=' ; for ( int j = 1 ; j < k ; j ++ ) { cout << cz [j] << '+' ; } cout << cz [k] << endl ; tot ++ ; return ; } else { splt ( a , k + 1 ) ; } a += i ; cz [k] = 0 ; } } return ; } int main ( ) { cin >> x ; splt ( x , 1 ) ; cout << "total=" << tot << endl ; return 0 ; }