1 条题解
-
0
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
- 上传者