1 solutions

  • 0
    @ 2024-12-10 23:49:12

    C :

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <math.h>
    
    int main(){
    	void power(int n);
    	int n;
    	scanf("%d",&n);
    	power(n);
    }
    
    void power(int n){
    	if (n==1){
    		printf("2(0)");
    		return;
    	}
    	if (n==2){
    		printf("2");
    		return;
    	}
    	if (n==3){
    		printf("2+2(0)");
    	}
    	if (n!=1 && n!=2 && n!=3){
    		int a;
    		for (a=0;;a++){
    			if ((int)pow((double)2,a)<=n && n<(int)pow((double)2,a+1)){
    				printf("2(");
    				power(a);
    				printf(")");
    				if (n-(int)pow((double)2,a)==0)
    					return;
    				else{
    					printf("+");
    					power(n-(int)pow((double)2,a));
    				}
    				break;
    			}
    		}
    	}
    }
    

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    bool f=1;
    void p(int n,int z){
    	if(n==0) return;
    	int y;
    	y=n%2;
    	p(n/2,++z);
    	if(y>0) {
    		z--;
    		if(!f&&n!=1)cout<<"+";
    		if(z==1) cout<<"2";
    		if(z==0) cout<<"2(0)";
    		if(z>1){cout<<"2(";
    			p(z,0); cout<<")";
    		} f=0;}
    	}
    int main(){
    	int n;
    	cin>>n;
    	p(n,0);
    }
    
    • 1

    Information

    ID
    638
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    7
    Accepted
    0
    Uploaded By