作者jpjpjp (二花)
看板ask
标题[请问] C语言写法?(数学排列)
时间Tue Jul 8 10:26:23 2025
大家好,
数学题目如下↓
哨音,长3秒、短2秒,皆间隔1秒,现历时25秒,有几种组合方式?答:49。
我可以用c写出它的组合方式是(x, y)=(2, 6), (5, 2)
但要如何才能用c,同时算出排法有49种呢?
附上原始码,感谢回覆!
int j=1;
for (int x=1; x<=10; x++) {
for (int y=1; y<=10; y++) {
if (((4*x)+(3*y))==26)
printf("(x, y)=(%d, %d), 4x*3y=%2d, run=%d\n", x, y,
(4*x+3*y), j);
j++;}}
return 0;}
/* (x, y)=(2, 6), 4x*3y=26, run=16
(x, y)=(5, 2), 4x*3y=26, run=42 */
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.234.112 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ask/M.1751941585.A.B86.html
1F:→ jpjpjp: xy的初始范围有更好的设定方式吗?毕竟一开始皆无知。 07/08 10:27
2F:推 blackbox: 找到(2,6)(5,2)接下来就算C(8,2)跟C(7,2) 07/08 10:55
3F:→ kobe8112: 你应该先问问自己,你的起始条件跟终止条件的值是怎麽 07/08 11:00
4F:→ kobe8112: 决定的 07/08 11:01
5F:→ gfang: 问AI不是比较快 07/09 00:34
6F:→ jpjpjp: 预先知道答案才设10,但想问在未知情况下,如何找到最佳? 07/09 08:26
7F:→ yeeouo: 代码问题一律问claude 07/09 12:29
8F:→ Ricestone: 这程式码是你写的吗? 没有规定要用什麽方法解吗? 07/09 13:49
9F:→ Ricestone: 如果这样的算法可以接受,那这限制条件你就直接想 07/09 13:51
10F:→ Ricestone: 全都长也就顶多9个y,全都短也就顶多13个x而已 07/09 13:52
11F:→ Ricestone: 这个顶多怎麽来,就是除法 07/09 13:52
12F:→ Ricestone: 讲错,是7个x与9个y 07/09 13:53
13F:→ Ricestone: 喔有用等号的话那就都各减1 07/09 13:58
14F:→ Ricestone: 各减2才对 另外为什麽你的x,y,j初始都设1? 07/09 14:00
15F:→ Ricestone: j都没印到的话是没差啦 只是一贯性比较低 07/09 14:05