TYVJ 1115 同余 解题报告
我用的暴搜,别人说还有一种方法:题目要求n个数同余。等价于求这n个数两两求差(大减小)所得的所有数的最大公约数。
我的暴搜代码如下:
#include <stdio.h> #include <stdlib.h> int num[100]; int ans; int main(int argc, char **argv) { int i, j, t; int n, max = 0; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%d", &num[i]); if(max < num[i]){ max = num[i]; } } for(i = 1; i <= max; i++){ t = num[0] % i; for(j = 1; j < n; j++){ if(num[j] % i != t){ break; } } if(j == n){ ans = i; } } printf("%d\n", ans); return 0; }