问问dalao输出的问题

P1010 [NOIP1998 普及组] 幂次方

输入输出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


| 下一页