1 条题解

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

    C :

    #include <stdio.h>
    #include <stdlib.h>
    int main() {
        int i,a=0;
        float f;
        for(i=0; i<16; i++) {
            int j = 1000;
            int y = 2000;
            if(i&1)  j += y/4, y -= y/4;
            else     y += j/4, j -= j/4;
            if(i&2)  j += y/4, y -= y/4;
            else     y += j/4, j -= j/4;
            if(i&4)  j += y/4, y -= y/4;
            else     y += j/4, j -= j/4;
            if(i&8)  j += y/4, y -= y/4;
            else     y += j/4, j -= j/4;
            if(abs(y-j)<1000)
                ++a; }  
        f = (float)a/16;
        printf("%.3f",f);
        return 0; }
    

    C++ :

    #include<iostream>
    #include<cmath>
    #include<iomanip>
    using namespace std;
    #define N 4
    int a[N];
    int cnt;
    void f(int idx)
    {
    	if(idx==N)
    	{
    		int A=1000,B=2000;
    		for(int i=0;i<N;i++)
    		{
    			if(a[i])
    			{
    				A=A+B/4;
    			    B=3*B/4;
    			}
    			else
    			{
    				B=B+A/4;
    			    A=3*A/4;
    			}
    		}
    		if(abs(A-B)<1000) cnt++;
    		return;
    	}
    	a[idx]=0;
    	f(idx+1);
    	a[idx]=1;
    	f(idx+1);
    } 
    int main()
    {
    	f(0);
    	cout<<fixed<<setprecision(3)<<cnt*1.0/(1<<N);
    	return 0;
    }
    

    Pascal :

    begin
      write('0.625');
    end.
    
    

    Java :

    public class Main {
    	public static void main(String[] args) {
    		System.out.println(0.625);
    	}
    }
    
    • 1

    信息

    ID
    839
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者