1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C :

    #include<stdio.h>
    int erJin(int x)
    {
    	int y,a=0,b=0;
    	while(x>0){
    		y=x%2;
    		if(y==1){
    			a++;
    		}else{
    			b++;
    		}
    		x/=2;
    	}
    	if(a>b){
    		return 1;
    	}else{
    		return 0;
    	}
    }
    int main(){
    	int n;
    	scanf("%d",&n);
    	int i,a=0,b=0;
    	for(i=1;i<=n;i++){
    		if(erJin(i)){
    			a++;
    		}else{
    			b++;
    		}
    	}
    	printf("%d %d",a,b);
    	return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    
     
    bool pd(int n);
    
    int main(){
    	
    	int n=0;
    	cin>>n;
    	int a=0,b=0;
    	
    	for(int i=1;i<=n;i++){
    			if(pd(i))
    				a++;
    			else
    				b++;
    	}
    	 
    	cout<<a<<" "<<b;
    
    	
    }
    
    bool pd(int n){
    	int x=n;
    	int y=0;
    	
    	int a=0,b=0;
    	
    	while(x!=0){
    			y=x%2; 
    			x=x/2;
    			
    			if(y==0)
    				b++;
    			else
    				a++;		
    	}
    
    	if(a>b)
    		return true;
    	else
    		return false;	
    	
    }
    
    

    Pascal :

    var 
      m,i,k,a,b,l,p:longint; 
    begin 
      readln(m); 
      for i:=1 to m do 
      begin 
      k:=i; 
      l:=0; 
      p:=0; 
      while k<>0 do 
      begin 
        if k mod 2=1 then inc(l) else inc(p); 
        k:=k div 2; 
      end; 
        if l>p then inc(a) else inc(b); 
      end; 
      writeln(a,' ',b); 
    end. 
    

    Java :

    import java.util.Scanner;
    
    public class Main{
    
    	public static void main(String[] args) {
    		int n=new Scanner(System.in).nextInt();
    		int numA=0;
    		int numB=0;
    		for(int i=1;i<=n;i++){
    			if(isA(i)){
    				numA++;
    			}else{
    				numB++;
    			}
    		}
    		System.out.println(numA+" "+numB);	
    	}
    	public static boolean isA(int n){
    		String binaryString=Integer.toBinaryString(n);
    		char[] charArray=binaryString.toCharArray();
    		int num0=0;
    		int num1=0;
    		for(int i=0;i<charArray.length;i++){
    			if(String.valueOf(charArray[i]).equals("1")){
    				num1++;
    			}else{
    				num0++;
    			}
    		}
    		if(num0>=num1){
    			return false;
    		}else{
    			return true;
    		}		
    	}
    }
    

    Python :

    n=int(input())
    s1=s2=0
    for i in range(1,n+1):
        s=bin(i)
        s=s[2:]
        if s.count("1")>s.count("0"):
            s1=s1+1
        else:
            s2=s2+1
    print(s1,s2)
    
    • 1

    信息

    ID
    136
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    5
    已通过
    2
    上传者