输入输出cin,scanf都可以
是标准输入输出
这样做i = 50也可以ac
```cpp
#include<iostream>
#include <cstdio>
using namespace std;
int n;
void deal(int x){
if(x==1){ //推出条件
printf("2(0)");
return;
}
if(x==2){
printf("2");
return;
}
bool cc=0;
for(int i=50;i>=0;--i){
long long z = (((long long)(x))&(((long long)(1))<<i));
bool zz = bool(z);
if(zz){
if(cc==1) printf("+");
cc=1;
if(i==0){ //特判
printf("2(0)");
}
else if(i==1){//特判
printf("2");
}
else if(i==2){//特判 可能不需要
printf("2(2)");
}
else{
printf("2(");
deal(i);
printf(")");
}
}
}
}
int main(){
cin >> n;
if(n==1) puts("2(0)"); //特判
else if(n==2) puts("2");//特判
else {
deal(n);
}
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:18:54
这样也可以ac:
```cpp
// luogu-judger-enable-o2
#include<iostream>
#include <cstdio>
using namespace std;
int n;
void deal(int x){
if(x==1){ //推出条件
printf("2(0)");
return;
}
else if(x==2){
printf("2");
return;
}
// cout << 5 << endl;
bool cc=0;
for(int i=50;i>=0;--i){
long long z = (((long long)(x))&(((long long)(1))<<i));
bool zz = bool(z);
if(zz){
if(cc==1) printf("+");
cc=1;
if(i==0){ //特判
printf("2(0)");
}
else if(i==1){//特判
printf("2");
}
else if(i==2){//特判 可能不需要
printf("2(2)");
}
else{
printf("2(");
deal(i);
printf(")");
}
}
}
}
int main(){
cin >> n;
```
/\*
if(n==1) puts("2(0)"); //特判
else if(n==2) puts("2");//特判
\*/
```cpp
//else {
deal(n);
// }
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:48:47
```cpp
// luogu-judger-enable-o2
#include<iostream>
#include <cstdio>
using namespace std;
int n;
void deal(int x){
if(x==1){ //推出条件
printf("2(0)");
return;
}
else if(x==2){
printf("2");
return;
}
// cout << 5 << endl;
bool cc=0;
for(int i=50;i>=0;--i){
long long z = (((long long)(x))&(((long long)(1))<<i));
bool zz = bool(z);
if(zz){
if(cc==1) printf("+");
cc=1;
if(i==0){ //特判
printf("2(0)");
}
else if(i==1){//特判
printf("2");
}
else if(i==2){//特判 可能不需要
printf("2(2)");
}
else{
printf("2(");
deal(i);
printf(")");
}
}
}
}
int main(){
cin >> n;
```
/\*
if(n==1) puts("2(0)"); //特判
else if(n==2) puts("2");//特判
\*/
```cpp
//else {
deal(n);
// }
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:49:16
```cpp
// luogu-judger-enable-o2
#include<iostream>
#include <cstdio>
using namespace std;
int n;
void deal(int x){
if(x==1){ //推出条件
printf("2(0)");
return;
}
else if(x==2){
printf("2");
return;
}
// cout << 5 << endl;
bool cc=0;
for(int i=50;i>=0;--i){
long long z = (((long long)(x))&(((long long)(1))<<i));
bool zz = bool(z);
if(zz){
if(cc==1) printf("+");
cc=1;
if(i==0){ //特判
printf("2(0)");
}
else if(i==1){//特判
printf("2");
}
else if(i==2){//特判 可能不需要
printf("2(2)");
}
else{
printf("2(");
deal(i);
printf(")");
}
}
}
}
int main(){
cin >> n;
deal(n);
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:49:32
这样也可以ac:
```cpp
#include <iostream>
using namespace std;
int n;
void dfs(int n) {
bool cc = 0;
for (int i = 50; i >= 0; --i) {
long long z = (((long long)(n))&(((long long)(1))<<i));
bool zz = bool(z);
if (zz) {
if (cc == 1) cout << '+';
cc = 1;
if (i == 0) {
cout << "2(0)";
} else if (i == 1) {
cout << 2;
} else if (i == 2) {
cout << "2(2)";
} else {
cout << "2(";
dfs(i);
cout << ')';
}
}
}
}
int main() {
cin >> n;
if (n == 1) cout << "2(0)" << endl;
else if (n == 2) cout << "2" << endl;
else {
dfs(n);
}
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:53:25
这样也可以ac:
```cpp
#include <iostream>
using namespace std;
int n;
void dfs(int n) {
bool cc = 0;
for (int i = 50; i >= 0; --i) {
long long z = (((long long)(n))&(((long long)(1))<<i));
bool zz = bool(z);
if (zz) {
if (cc == 1) cout << '+';
cc = 1;
if (i == 0) {
cout << "2(0)";
} else if (i == 1) {
cout << 2;
} else if (i == 2) {
cout << "2(2)";
} else {
cout << "2(";
dfs(i);
cout << ')';
}
}
}
}
int main() {
cin >> n;
dfs(n);
cout << endl;
return 0;
}
```
by Alextokc @ 2018-01-28 22:55:41
666
by Blackal_Saka @ 2018-08-08 20:43:57
请问您有多少种代码
by wxy_god @ 2018-08-16 11:21:14
蒟蒻望而生畏
by luowa @ 2018-08-18 15:29:53
```cpp
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int fun(int n)
{
if(n>4)
{
int t=1;
while(pow(2,t)<=n) t++;
cout<<"2(";
fun(t-1);
cout<<")";
if(n!=pow(2,t-1)) cout<<"+";
fun(n-pow(2,t-1));
}
else
switch(n)
{
case 0: return 0;
case 1: cout<<"2(0)"; break;
case 2: cout<<"2"; break;
case 3: cout<<"2+2(0)"; break;
case 4: cout<<"2(2)"; break;
}
}
int main()
{
int n;
cin>>n;
fun(n);
return 0;
}
```
by Mate_985 @ 2018-09-03 20:52:56