社区
C语言
帖子详情
编程——数三角形
emmajiang
2004-04-25 03:32:04
其实题目很是简单:
一个等边三角形,如果在其每条边上平分N个点,问可以数出几个三角形,例如每条边上有一个点则可以有5个三角形。大家可要仔细数哟,大家来试试看怎么样编程吧
不过要考虑时间复杂度的问题,N<=500,输入一个N后要在1秒中内得出答案。
快来试试哟
Sample Input
1
2
3
Sample output
5
13
27
...全文
87
11
打赏
收藏
编程——数三角形
其实题目很是简单: 一个等边三角形,如果在其每条边上平分N个点,问可以数出几个三角形,例如每条边上有一个点则可以有5个三角形。大家可要仔细数哟,大家来试试看怎么样编程吧 不过要考虑时间复杂度的问题,N<=500,输入一个N后要在1秒中内得出答案。 快来试试哟 Sample Input 1 2 3 Sample output 5 13 27
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
languagec
2004-04-26
打赏
举报
回复
假如原先边为n-1,则再加长一个单位时为 n.这时,单位为1的三角形多了 2*n-1 个,单位为2的多了 n-2+1 个,同理单位为3,4……的多了 n-3+1,n-4+1…… 个。直到n-n+1。
就是一个递归过程,不过用递归会益处吧。
#include <iostream.h>
long Sum(long num)
{
long n,sum=0;
n=2;
while(num-n>=0)
{
sum=sum+num-n+1;
n++;
}
//cout<<"Sum="<<sum<<endl;
return sum;
}
int main()
{
long n,sum,s;
while(cin>>n)
{
for(s=1,sum=0;s<=n;s++)
{
sum=sum+2*s-1+Sum(s);
}
cout<<sum<<endl;
}
return 0;
}
我根据思路写了一个,不过提交未过 :(
RPhx
2004-04-26
打赏
举报
回复
自己画图推导一下就可以了,不难的
jiziba
2004-04-26
打赏
举报
回复
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) //argv[1]-原文件,argv[2]-目标文件
{
if(argc!=3)
{
cout<<"Usage:ExeFile SourceFile DestinationFile"<<endl;
return 0;
}
ifstream iFile;
ofstream oFile;
char Data[8];
long SideLen;
long TriNum;
iFile.open(argv[1]);
oFile.open(argv[2]);
while(iFile.getline(Data,8))
{
sscanf(Data,"%d",&SideLen);
if(SideLen == 1) TriNum = 1;
else TriNum = SideLen*SideLen+3*SideLen-5;
oFile<<TriNum<<endl;
}//while
iFile.close();
oFile.close();
}//main
whalefish2001
2004-04-26
打赏
举报
回复
#include <iostream.h>
#include<conio.h>
//using namespace std;
int main()
{
int i,num[2048];
//因为到2048溢出。
num[0]=0;
num[1]=1;
num[2]=5;
for(i=3;i<2048;i++)
{
if((i-long(i/10)*10)%2==1)
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+1;
else
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+2;
if (i%10 == 3)getch();
cout<<i<<" : "<<num[i]<<endl;
}
/*
int n;
while(cin>>n)
{
cout<<num[n+1]<<endl;
}
*/
return 0;
}
languagec
2004-04-26
打赏
举报
回复
漏了几种情况
改好了
sum=sum+(num-n)+n/2;
emmajiang
2004-04-25
打赏
举报
回复
那你们是怎么推导出来的呀,能说一下嘛
ync111
2004-04-25
打赏
举报
回复
这到题我也做了
本人也在作浙江大学上的题 以作了几十题
但没到题都要发送好多编才能对
有那位大哥大姐愿意和我一起做的; 以求共同发展;
请记下我的QQ:284301276或272656303
我的邮箱:ync999@163.com
zhp831221
2004-04-25
打赏
举报
回复
这里有浙江大学的吗?怎么知道http://acm.zju.edu.cn/show_problem.php?pid=1629
languagec
2004-04-25
打赏
举报
回复
http://acm.zju.edu.cn/show_problem.php?pid=1629
是这个题吧
freefalcon
2004-04-25
打赏
举报
回复
ft,谁出的题,500刚好溢出,将楼上的改为
#include <cstdio>
using namespace std;
int main()
{
int i;
__int64 num[501];
num[0]=0;
num[1]=1;
num[2]=5;
for(i=3;i<501;i++)
{
if(0!=i%2)
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+1;
else
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+2;
}
int n;
while(cin>>n)
{
printf("%I64d\n", num[n+1]);
}
return 0;
}
RPhx
2004-04-25
打赏
举报
回复
用递推的方法很容易算出来的.
#include <iostream>
using namespace std;
int main()
{
int i,num[501];
num[0]=0;
num[1]=1;
num[2]=5;
for(i=3;i<501;i++)
{
if(0!=i%2)
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+1;
else
num[i]=3*num[i-1]-3*num[i-2]+num[i-3]+2;
}
int n;
while(cin>>n)
{
cout<<num[n+1]<<endl;
}
return 0;
}
三角形
的测试用例——判断
三角形
的形状
三角形
的测试用例——判断
三角形
的形状。读入3个整
数
,把这3个
数
值看做一个
三角形
的3条边的长度值。根据长度值给出弹窗提示信息,说明这个
三角形
是普通的、等腰的、直角的、还是等边的,以及相应的错误提示信息。
【Python--抽象类和抽象方法】--求
三角形
、矩形、圆的面积和周长的
编程
题(csdn)————程序.pdf
【Python--抽象类和抽象方法】--求
三角形
、矩形、圆的面积和周长的
编程
题(csdn)————程序
C语言经典算法100道实战题
本课程【C语言经典算法100道实战题】视频,知识体系全面,语言通俗易懂,培养
编程
兴趣、拓宽
编程
思维、提高动手编码能力,经典算法涉及
数
学知识应用、
数
据结构排序算法、图形
编程
应用、简单游戏算法。
判断一个点在
三角形
内 vc
判断一个点在
三角形
内,通过矢量的叉积判断一个点是不是在
三角形
内,判断准确
编程
实战——
编程
初学者入门91~100
编程
实战——
编程
初学者入门91~10091. 最高分与最低分之差92. 计算一元二次方程93. 获得月份天
数
94. 简单计算器95. 直角
三角形
图案96. 带空格直角
三角形
图案97. 金字塔图案98. 翻转金字塔图案99. 菱形图案100. K形...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章