zoukankan      html  css  js  c++  java
  • SDUT OJ 2862 勾股定理

    #include<iostream>
    using namespace std;
    int a[1010];
    void qsort(int a[],int l,int r)
    {
    	int x=a[l],i=l,j=r;
    	if(l>=r)  return ;
    	while(i<j)
    	{
    		while(i<j&&a[j]>=x) j--;
    		a[i]=a[j];
    		while(i<j&&a[i]<=x) i++;
    		a[j]=a[i];
    	}
    	a[i]=x;
    	qsort(a,l,i-1);
    	qsort(a,i+1,r);
    }
    int main()
    {
         int n,i,m,ans,j,k;
    	 cin>>n;
    	 while(n--)
    	 {
    		 cin>>m;
    		 for(i=0;i<m;i++)
             cin>>a[i];
    		 for(i=0;i<m;i++)
    	     a[i]=a[i]*a[i];
    		 qsort(a,0,m-1);
    		 ans = 0 ;
             for(i = 0 ; i < m ; i++)
            {
                for(j = i+1 ; j < m ; j++)
                {
                    k = a[i]+ a[j] ;
                    int low = 0 , mid , high = m-1 ;
                    while(low <= high)
                    {
                        mid = (low + high) / 2 ;
                        if( a[mid] == k )
                            break;
                        else if( a[mid] < k )
                            low = mid + 1 ;
                        else
                            high = mid - 1 ;
                    }
                    if(a[mid] == k)
                        ans++ ;
                }
            }
            cout<<ans<<endl;
    	 }
    	 return 0;
    }

  • 相关阅读:
    Linux进程间通信(IPC)
    mq_setattr
    mq_getattr
    mq_unlink
    mq_receive
    mq_send
    mq_close
    POSIX消息队列
    mq_open
    C语言关键字
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7048444.html
Copyright © 2011-2022 走看看