24小时热门版块排行榜    

查看: 1067  |  回复: 12

汞有毒

木虫 (正式写手)

[求助] 三角形

有一百个长度相同的火柴棒,能组成多少个三角形?例如,边长为32,34,34的三角形。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

feixiaolin

荣誉版主 (文坛精英)

优秀版主

汞有毒: 回帖置顶 2013-12-11 21:48:00
引用回帖:
9楼: Originally posted by 汞有毒 at 2013-12-10 13:38:40
能不能帮我运行一下啊,我笔记本没有这个软件。...

一个小小的C程序,TC, VC下都可以跑。
具体数值为 588

[ Last edited by feixiaolin on 2013-12-10 at 17:00 ]
10楼2013-12-10 14:03:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

峰锋风逢烽

金虫 (知名作家)

追梦者,梦中的人

【答案】应助回帖

感谢参与,应助指数 +1
这个应该可以算出来,一个火柴棍支撑几个三角形的边,几个加一起又支撑几个三角形的边,除去边界
百度一下,你就知道
选我所爱,爱我所选
2楼2013-12-08 16:44:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

汞有毒

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 峰锋风逢烽 at 2013-12-08 16:44:52
这个应该可以算出来,一个火柴棍支撑几个三角形的边,几个加一起又支撑几个三角形的边,除去边界
百度一下,你就知道

我的意思是:每一个三角都要用掉这100根火柴
3楼2013-12-08 17:31:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

峰锋风逢烽

金虫 (知名作家)

追梦者,梦中的人

引用回帖:
3楼: Originally posted by 汞有毒 at 2013-12-08 17:31:43
我的意思是:每一个三角都要用掉这100根火柴...

一个啊,怎么感觉就是一个呢
选我所爱,爱我所选
4楼2013-12-08 17:33:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peterflyer

木虫之王 (文学泰斗)

peterflyer


【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
汞有毒(feixiaolin代发): 金币+16 2013-12-11 17:19:19
汞有毒: 金币+15 2013-12-11 21:43:05
设三角形的三个边分别为a、b、c,根据题意以及三角形的特点有:
  a+b+c=100                (1)
   a+b>c                        (2)
    b+c>a                      (3)
    a+c>b                       (4)
   a>0,b>0,c>0, a、b、c均为正整数。  (5)
因此a有98种选法,其最大值为98,最小值为1;a选完后b最多也只有98种选法,但由于其同时还要满足(2)(3)(4)的条件,因此实际上的选法小于98。那它有几种选法呢?
由(1)得:b+c=100-a
使用穷举法加类推法。
当a=1时,扣除重复的,b实际只有49种选法,a、b选定后,由于(1)的存在,c只有1种选法;当a=2时,b也有49种选法,c只有1种;当a=3时,b也有48种选法,c只有1种;当a=4时,b也有48种选法,c只有1种;......;当a=97时,b有1种选法,c只有1种,a=98时,b有1种选法,c只有1种。
综上,共有N=49+49+......+1+1=2*(49+......+1)=49*50=2450种方法。
5楼2013-12-08 18:30:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

一个很小的程序就搞定了。
#include<stdio.h>
#include<math.h>

void main()
{
        int i, j, k, cnt;

        cnt=0;
        for(i=1; i<100; i++)
          for(j=1; j<100; j++)
                 for(k=1; k<100; k++)
                {
                   if( (i+j+k<100)||(i+j+k>100))
                          continue;
                  else  if((i+j>k)&&(i+k>j)&&(j+k>i))
                  {
                         printf("\n%d, %d, %d", i, j, k);
                         cnt+=1;
            
                   }
                  else
                         continue;
                 }
        printf("\n\ncnt=%d\n", cnt/2);  //扣除重复

}

[ Last edited by feixiaolin on 2013-12-10 at 16:59 ]
6楼2013-12-08 18:42:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phyguang

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
是不是可以组成一个大的三角形,里面包含很多小的三角形。感觉楼上们都是在考虑单一的一个三角形。我的意思是一个三角形的一边为另一个三角形的一边,这样就会更多呢?
7楼2013-12-09 16:28:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

汞有毒

木虫 (正式写手)

引用回帖:
7楼: Originally posted by phyguang at 2013-12-09 16:28:48
是不是可以组成一个大的三角形,里面包含很多小的三角形。感觉楼上们都是在考虑单一的一个三角形。我的意思是一个三角形的一边为另一个三角形的一边,这样就会更多呢?

不是。就是组成一个单独的三角形。
8楼2013-12-10 13:31:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

汞有毒

木虫 (正式写手)

引用回帖:
6楼: Originally posted by feixiaolin at 2013-12-08 18:42:53
一个很小的程序就搞定了。
cnt=0;
for(i=1; i<100; i++)
  for(j=1; j<100; j++)
     for(k=1; k<100; k++)
    {
       if( i+j+k<>100)
          continue;
      else  if((i+j>k) ...

能不能帮我运行一下啊,我笔记本没有这个软件。
9楼2013-12-10 13:38:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 汞有毒 的主题更新
信息提示
请填处理意见