跪求一道C语言的题答案!!!急急急!!速度速度!!!

2025-03-03 05:59:25
推荐回答(2个)
回答1:

看来楼主问了2遍,所以我也就再回答一遍了。
楼主不要被题目给唬住了,其实这是一个简单的循环问题。关键是找到其中的算法。其实很简单,要一条边一条边来看:以三角形的一个边再构造一个三角形,显然已经具备了2个点和一个边,再增加一个点和2条边就是一个新的三角形。所以有:
1)初始条件:一个三角形,因此有3个点,3条边。然后根据边数来计算就可以了
2)循环第一次,3条边等于新增3个点,新增6条边。
3)循环第二次,新增的6条边,等于新增6个点,新增12条边。
4)循环第三次,新增的12条边,等于新增12个点,新增24条边。
这样循环计算20次就可以了,通过2个变量将点数和边数累计就行了。楼主这个不难吧!

回答2:

很明显,只有第N步中新增的边,才能在第N+1步作为新三角形的基础边。
第一步:以最初始的3条边为基础边,新增3个三角形,新增3个点6边条;
第二步,以上一步新增的6条边为基础边,新增6个三角形,新增6个点12边条。
。。。。
第N步,以上一步新增的3*2^(N-1)条边为基础边,新增3*2^(N-1)个三角形,新增3*2^(N-1)个点和3*2^N条边。
。。。。。

#include "stdio.h"

void main()
{
long s1,s2;;
long t=3;
s1=s2=3;
for(int i=1;i<=20;i++)
{
s1+=t;
s2+=2*t;
t*=2;
}
printf("%ld,%ld\n",s1,s2);
}