1 条题解

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

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int  n,m=99;
    	cin>>n;
    	int a[n][m];
    	for(int i=0;i<n;i++){
    		a[i][0] = 1;
    		int k;
    		cin>>k;//2
    		k = k -1;
    		for(int j=1;j<m;j++){
    			for(int p=0;p<k;p++){
    				a[i][j+p] = 0;
    			}
    			j= j + k;
    			a[i][j] = 1; 
    		}
    	} 
    	int j;
    	for( j=1;j<m;j++){
    		bool f = true;//假定列上每一个数都是1 
    		for(int i=0;i<n;i++){
    			if(a[i][j]!=1){
    				f  = false;
    			}
    		}
    		if(f == true){
    			break;
    		}
    	}
    	cout<<j+1;
    	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 max=a[0];
    		int s =1;
    		for(int i=0;i<n;i++) {
    			s=s*a[i];
    			if(a[i]>max) {
    				max=a[i];
    			}
    		}
    		for(int i=max;i<=s;i++) {
    			int c = 0;
    			for(int j=0;j<n;) {
    				if(i%a[j]==0) {
    					c++;
    					j++;
    				}else {
    					break;
    				}
    			}
    			if(c==n) {
    				System.out.println(i+1);
    				break;
    			}
    		}
    	}
    }
    
    

    Python :

    n = int(input())
    s = input().split()
    for i in range(0, n):
        s[i] = int(s[i])
    mx = max(s)
    i = mx;
    while True:
        f = True
        for j in range(0, n):
            if i % s[j] != 0:
                f = False
                break
        if f is True:
            print(i + 1)
            break;
        i += 1
    
    
    • 1

    信息

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