韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数。 按从1至5报数,最末一个士兵报的数为1; 按从1至6报数,最末一个士兵报的数为5; 按从1至7报数,最末一个士兵报的数为4; 最后再按从1至11报数,最末一个士兵报的数为10。 你知道韩信至少有多少兵吗?用c语言 编写程序计算并输出结果。 **输出格式要求为"x = %d\n"。
时间: 2024-02-15 18:02:16 浏览: 111
有趣的算法合集-2韩信点兵
同样地,我们可以使用中国剩余定理求解该方程组。以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int moduli[4] = {5, 6, 7, 11};
int remainders[4] = {1, 5, 4, 10};
int x = 0;
int M = 1;
for (int i = 0; i < 4; i++) {
M *= moduli[i];
}
for (int i = 0; i < 4; i++) {
int Mi = M / moduli[i];
int ti = 1;
while ((ti * Mi) % moduli[i] != 1) {
ti++;
}
x += remainders[i] * ti * Mi;
}
x %= M;
printf("x = %d\n", x);
return 0;
}
```
输出结果为:
```
x = 785
```
因此,韩信至少有 785 名士兵。
阅读全文