求一个C++的小程序。一百行左右,要求有注释。 100

 我来答
邓生礼艺
2019-02-20 · TA获得超过1119个赞
知道小有建树答主
回答量:1906
采纳率:100%
帮助的人:10.9万
展开全部
帮别人解答的一个题目,供楼主选用
题目:
某图初始状态为一个三角形,此后每一时间步内都以上一时间步内新增加的边为一边再构造一个新的三角形(参见下图),请设计程序计算如此经历20步(t=20),此时图中有多少条边,多少个点。
答案:
楼主不要被题目给唬住了,其实这是一个简单的循环问题。关键是找到其中的算法。其实很简单,要一条边一条边来看:以三角形的一个边再构造一个三角形,显然已经具备了2个点和一个边,再增加一个点和2条边就是一个新的三角形。所以有:
1)初始条件:一个三角形,因此有3个点,3条边。然后根据边数来计算就可以了
2)循环第一次,3条边等于新增3个点,新增6条边。
3)循环第二次,新增的6条边,等于新增6个点,新增12条边。
4)循环第三次,新增的12条边,等于新增12个点,新增24条边。
这样循环计算20次就可以了,通过2个变量将点数和边数累计就行了。楼主这个不难吧!
三角形个数也好统计,改了下程序。
#include
<stdio.h>
#include
<string.h>
void
main()
{
long
i;
/*循环次数*/
long
b;
/*每次新增的边数*/
long
tp,tb;
/*累计的点数和变数*/
long
s;
/*三角形个数*/
tp=3;
/*最初一个三角形,有三个点*/
tb=3;
/*最初一个三角形,有三条边*/
b=3;
/*刚开始时,只有一个三角形,所以初始条件新增的边数为3*/
s=1;
/*刚开始,三角形个数为1*/
for
(i=1;i<20;i++){
/*这个还要解释吗*/
tp=tp+b;
/*每次循环,增加的点数与上一次循环新增的边数相等,累加*/
tb=tb+2*b;
/*每次循环,增加的边数是上一次循环新增边数的2倍,累加*/
s=s+b;
/*每次循环,上一次循环新增一条边,本次就会新画出一个三角形*/
b=2*b;
/*每次循环,新增的边数等于上一次循环新增边数的2倍,用于下一次循环计算点数和边数*/
}
printf("point=%ld;
line=%ld\n",tp,tb);
/*这个还要解释吗*/
}
魔龙嗜血
2015-06-16 · TA获得超过1116个赞
知道小有建树答主
回答量:1033
采纳率:100%
帮助的人:512万
展开全部
收费,你还会要吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阡陌她人只为你
2015-06-16 · TA获得超过181个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:236万
展开全部
你要什莫样的小程序?
追问
能用就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邱大穰小翠
2019-03-23 · TA获得超过1071个赞
知道小有建树答主
回答量:6
采纳率:0%
帮助的人:2116
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式