1 条题解

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

    C :

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int a,i=0,s[52],n=0,j,c[1326]={0},m=0,t=0;
        scanf("%d",&a);
        n=a*(a-1)/2;
        for(i=0;i<a;i++)
        {
            scanf("%d",&s[i]);
        }
        for(i=0;i<a;i++)
        {
            for(j=i+1;j<a;j++)
            {
                c[m]=s[i]+s[j];
                m++;
            }
        }
        m=n;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(c[i]==c[j])
                {
                    m--;
                    c[i]=0;
                }
            }
        }
        printf("%d\n",m);
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(c[i]>c[j])
                {
                    t=c[i];
                    c[i]=c[j];
                    c[j]=t;
                }
            }
        }
        for(i=n-m;i<n;i++)
        {
            printf("%d ",c[i]);
        }
        return 0;
    }
    

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n,h[27]={0},i,j,s=0;
        cin>>n;
        int a[53]={0};
        for(i=0;i<n;i++){
            cin>>a[i];
        }
        for(i=0;i<n;i++){
            for(j=i+1;j<n;j++){
                if(h[a[i]+a[j]]==0){
                    s++;
                    h[a[i]+a[j]]=1;
                }
            }
        }
        cout<<s<<endl;
        bool f=false;
        for(i=1;i<27;i++){
            if(h[i]==1){
                if(f) cout<<" ";
                else f=true;
                cout<<i;
            }
        }
        return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int[] a =new int[n];
    		for(int i=0;i<n;i++) {
    			a[i]=sc.nextInt();
    		}
    		int m =0;
    		for(int i =1;i<=n-1;i++) {
    			m=m+i;
    		}
    		int[] b =new int[m];
    		int s =0;
    		for(int i =0;i<n-1;i++) {
    			for(int j=i+1;j<n;j++) {
    				b[s]=a[i]+a[j];
    				s++;
    			}
    		}
    		for(int i =1;i<=m-1;i++) {
    			int t =0;
    			for(int j=0;j<=m-1-i;j++) {
    				if(b[j]>b[j+1]) {
    					t=b[j+1];
    					b[j+1]=b[j];
    					b[j]=t;
    				}
    			}
    		}
    		for(int i =0;i<m-1;i++) {
    			for(int j=i+1;j<m;j++) {
    				if(b[i]==b[j]) {
    					b[j]=0;
    				}
    			}
    		}
    		int x = 0;
    		for(int i =0;i<m;i++) {
    			if(b[i]!=0) {
    				x++;
    			}
    		}
    		System.out.println(x);
    		for(int i =0;i<m;i++) {
    			if(b[i]!=0) {
    				System.out.print(b[i]+" ");
    			}
    		}
    	}
    }
    
    

    Python :

    import math
    import sys
    n=int(input())
    m=list(map(int,input().split()))
    s=set()
    for i,a in enumerate(m):
        for j,b in enumerate(m):
            if i!=j:
                s.add(a+b)
    print(len(s))
    s=list(s)
    s.sort()
    for item in s:
        print(item,end=" ")
            
    
    
    • 1

    信息

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