1 条题解

  • 0
    @ 2025-4-12 21:43:14

    C :

    #include <stdio.h>
    #define M 100000
    int arr[M+1];
    
    
    int gcd(int a, int b)
    {
        if(b==0)
            return a;
        else
            return gcd(b, a%b);
    }
    
    
    void init()
    {
        int i, j, x, y, z;
        for(i=1; i<=800; ++i)
            for(j=i+1; 2*j*j+2*j*i<=M; ++j)
            {
                    x=2*i*j;
                    y=j*j-i*i;
                    z=j*j+i*i;
                    //确保x,y,z互质
                    if(gcd(gcd(x, y), z) == 1)
                    {
                        int t = x+y+z;
                        int tmp = 1;
                        while(tmp*t <= M)
                        {
                            arr[tmp*t]++;
                            ++tmp;
                        }
                    }
            }
    }
    
    
    int main()
    {
        init();
        int T, i, A;
    
    
        scanf("%d", &T);
        for(i = 1; i <= T; i++)
        {
            scanf("%d", &A);
            printf("%d\n", arr[A]);
        }
    
    
        return 0;
    }
    
    

    C++ :

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int i;       //存储测试数据的组数 
    	int j;       //循环变量 
    	int t1,t2;
    	int a;       //边长1 
    	int b;       //边长2
    	int c;
    	int n;
    	int n1;
    	long long int area = 0;
    	cin >> i; 
    	int *counter = new int[i]; //记录对应周长符合条件的直角三角形的组数   
    	for(j = 0; j < i; j++)
    	{
    		cin >> n;
    		counter[j] = 0;
    		n1 = n*0.5;
    		for(a = n/4+1; a < n1; a++)
    	    {
    	    	area = a*a;
    	    	t1 = (n-a)/2;
    	    	t2 = n/2 - a +1;
    	    	if(t2 > a) continue;
    		    for(b = t2; b < a && b < t1; b++)
    		    {
    		    	c = n - a - b;
    				if(c*c == area+b*b)
    		        {
    		    		counter[j]++;
    		    	}
    		    }
    	    }
    	}
    	for(j = 0; j < i; j++)
    	{
    		cout << counter[j] << endl; 
    	}
    	delete [] counter;
    	return 0;
    } 
    
    • 1

    信息

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