84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
完全不知道怎么下手??
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
这个。。。不知道怎么说才好。。。
设共有 n 个人,三人一排,五人一排,七人一排,看最后一排剩下 a, b, c 人不就是
n % 3 = a n % 5 = b n % 7 = c
下面不就很简单了么?方法 1: 暴力n 从 10 到 100 都试一下。这个不用我说了吧
方法 2: 数学方法(解同余式-初等数经)
例题:n % 3 = 2n % 5 = 4
可以转化成什么呢?
设 n / 3 = x 余 2, n / 5 = y 余 4 ==> 3x + 2 = 5y + 4 ==> 3x = 5y + 2 x,y 在 自然数的最小解是 x = 4, y = 2 ==> n 最小是 12 3 和 5 的最小公倍数 = 15 所以 n % 15 == 12
三个的话,先算两个,再算第三个。
#include <stdio.h> #include <stdlib.h> int met(int count, int pision, int remain) { return count % pision == remain; } int getMin(int i, int j, int k) { if (i == j && j == k) return -1; if (i >= 3) i %= 3; if (j >= 5) j %= 5; if (k >= 7) k %= 7; int count = 0; while(1) { if (count > 10) { if (met(count, 3, i) && met(count, 5, j) && met(count, 7, k)) { break; } } count++; if (count > 100) { count = -1; break; } } return count; } int main(int argc, char **args) { if (argc < 4) { printf("no enough params."); } else { int i = atoi(args[1]); int j = atoi(args[2]); int k = atoi(args[3]); int c = getMin(i, j, k); if (c == -1) { printf("no qualified number!"); } else { printf("count = %d", c); } } }
这个。。。不知道怎么说才好。。。
设共有 n 个人,三人一排,五人一排,七人一排,看最后一排剩下 a, b, c 人
不就是
下面不就很简单了么?
方法 1: 暴力
n 从 10 到 100 都试一下。这个不用我说了吧
方法 2: 数学方法(解同余式-初等数经)
例题:
n % 3 = 2
n % 5 = 4
可以转化成什么呢?
三个的话,先算两个,再算第三个。