1 条题解

  • 0
    @ 2021-6-15 13:05:35

    C :

    #include<stdio.h>
    int t[10];
    void f(int score,int idx)
    {
    	int i;
    	if(idx==10)
    	{
    		if(100==score)
    		{
    			for(int i=0;i<10;i++)
    			{
    				printf("%d",t[i]);
    			}
    			printf("\n");
    		}
    		return ;
    	}
    	t[idx]=0;
    	f(score-idx-1,idx+1);
    	t[idx]=1;
    	f(score<<1,idx+1);
    }
    int main()
    {
    	f(10,0);
    	return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    int a[10];
    void f(int score,int idx)
    {
    	int i;
    	if(idx==10)
    	{
    		if(100==score)
    		{
    			for(i=0;i<10;i++)
    			{
    				cout<<a[i];
    			}
    			cout<<endl;
    		}
    		return;
    	}
    	a[idx]=0;
    	f(score-idx-1,idx+1);
    	a[idx]=1;
    	f(score<<1,idx+1);
    }
    int main()
    {
    	f(10,0);
    	return 0;
    }
    

    Java :

    public class Main{
    	public static void main(String[] args) {
    		for(int i=0;i<1024;i++){
    			String s=String.format("%010d", Integer.parseInt(Integer.toBinaryString(i)));
    			f(s);
    		}
    	}
    	public static void f(String s){
    		boolean b=false;
    		int f = 10;
    		for(int i=0;i<s.length();i++){
    			if(s.charAt(i)=='0') {f=f-i-1;
    			//System.out.println(f);
    			}
    			else {
    				f=f*2;
    				//System.out.println(f);
    			}
    			
    		}
    		
    		if(f==100){
    			b=true;
    			System.out.println(s);
    		}
    	}
    }
    
    • 1

    信息

    ID
    837
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者