完全不知道怎么下手??
#include <stdio.h>
#include <stdlib.h>
int met(int count, int division, int remain) {
return count % division == 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);
}
}
}
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
这个。。。不知道怎么说才好。。。
设共有 n 个人,三人一排,五人一排,七人一排,看最后一排剩下 a, b, c 人
不就是
下面不就很简单了么?
方法 1: 暴力
n 从 10 到 100 都试一下。这个不用我说了吧
方法 2: 数学方法(解同余式-初等数经)
例题:
n % 3 = 2
n % 5 = 4
可以转化成什么呢?
三个的话,先算两个,再算第三个。