1 条题解

  • 0
    @ 2023-6-11 12:18:10

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int a[1010];
    int b[1010];
     
    int main(){
        int n,i,x;
        cin>>n>>x;
        a[0] = x;
        b[a[0]]++;
        for(i = 1;i < n;i++){
            a[i] = (a[i - 1] * 37 + 33031) % n + 1;
            b[a[i]]++;
        }
         
        int r,max = 0;
        for(i = 0;i < 1010;i++){
            if(b[i] > max){
                max = b[i];
                r = i;
            }
        }
        cout<<r<<endl;
         
        return 0;
    }
    
    
    

    Java :

    
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int num1 = scanner.nextInt();
            int num2 = scanner.nextInt();
            int[] a = new int[num1];
            int[] b = new int[1000];
            int[] count = new int[10000];
            double avg;
            int x = 0;
            long s = 0;
            a[0] = num2;
            for (int i = 1; i < num1; i++) {
                a[i] = (a[i-1] * 37 + 33031) % num1 + 1;
            }
            for(int i = 0;i < num1;i++){
                    count[a[i]]++;
            }
            int max = MAX(count);
            for (int i = 0; i < 10000; i++) {
                if(count[i] == max) {System.out.println(i);
                break;}
            }
        }
    
        public static boolean judge(int i,int j){
            int a,s = 0;
            while(i != 0){
                a = i % 10;
                s = s + a;
                i /= 10;
            }
            if(s == j)return true;
            else return false;
        }
    
        public static void paiXux(int[] a){
            int temp;
            for(int i = 0;i < a.length - 1;i++){
                for(int k = 0;k < a.length - i - 1;k++){
                    if(a[k] > a[k + 1]){
                        temp = a[k];
                        a[k] = a[k + 1];
                        a[k + 1] = temp;
                    }
                }
            }
        }public static void paiXu(int[] a,int length){
            int temp;
            for(int i = 0;i < length - 1;i++){
                for(int k = 0;k < length - i - 1;k++){
                    if(a[k] > a[k + 1]){
                        temp = a[k];
                        a[k] = a[k + 1];
                        a[k + 1] = temp;
                    }
                }
            }
        } public static void paiXud(int[] a){
            int temp;
            for(int i = 0;i < a.length - 1;i++){
                for(int k = 0;k < a.length - i - 1;k++){
                    if(a[k] < a[k + 1]){
                        temp = a[k];
                        a[k] = a[k + 1];
                        a[k + 1] = temp;
                    }
                }
            }
        }
    
        public static int MAX(int[] a){
            int max = a[0];
            for (int i = 0; i < a.length; i++) {
                if(max < a[i]){
                    max = a[i];
                }
            }
            return max;
        }
    
        public static int MIN(int[] a){
            int min = a[0];
            for (int i = 0; i < a.length; i++) {
                if(min > a[i]){
                   min = a[i];
                }
            }
            return min;
        }
        public static int sum(int a){
            int x,s = 0;
            while(a != 0){
                x = a % 10;
                s = s + x;
                a /= 10;
            }
            return s;
        }
        public static boolean isPrime(int a){
            if(a <= 1)return false;
            else
            for(int i = 2;i <= Math.sqrt(a);i++){
                if(a % i == 0)return false;
            }return true;
        }
    
        public static int qiuYu(int i){
            int a;
            a = i % 10;
            return a;
        }
    }
    

    Python :

    sr=input().split()
    n=int(sr[0])
    x1=int(sr[1])
    b=[]
    b.append(x1)
    for i in range(1,n):
        x2=(x1*37+33031)%n+1
        b.append(x2)
        x1=x2
    b=sorted(b)
    da=b.count(b[0])
    k=0
    for i in range(n):
        if(b.count(b[i])>da):
            da=b.count(b[i])
            k=i
    print(b[k])
    
    • 1

    信息

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