社区
C语言
帖子详情
编程——数三角形
emmajiang
2004-04-25 03:32:04
其实题目很是简单:
一个等边三角形,如果在其每条边上平分N个点,问可以数出几个三角形,例如每条边上有一个点则可以有5个三角形。大家可要仔细数哟,大家来试试看怎么样编程吧
不过要考虑时间复杂度的问题,N<=500,输入一个N后要在1秒中内得出答案。
快来试试哟
Sample Input
1
2
3
Sample output
5
13
27
...全文
92
11
打赏
收藏
编程——数三角形
其实题目很是简单: 一个等边三角形,如果在其每条边上平分N个点,问可以数出几个三角形,例如每条边上有一个点则可以有5个三角形。大家可要仔细数哟,大家来试试看怎么样编程吧 不过要考虑时间复杂度的问题,N<=500,输入一个N后要在1秒中内得出答案。 快来试试哟 Sample Input 1 2 3 Sample output 5 13 27
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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条边的长度值。根据长度值给出弹窗提示信息,说明这个
三角形
是普通的、等腰的、直角的、还是等边的,以及相应的错误提示信息。
汇编课程设计 绘制
三角形
自己做的一个课设程序,代码两百行左右,附带实验报告和流程图!大家都明白的,不解释!
书评:《GPU精粹——实时图形
编程
的技术、技巧和技艺》.pdf
书评:《GPU精粹——实时图形
编程
的技术、技巧和技艺》.pdf
电子科大UESTC_OPENGL三维图形程序设计实验_指导老师为周川
注意【指导老师为周川】,仅供参考,学到真本事更重要。 内容: 实验1、 分别利用点、线图元生成锥形螺旋曲线和环形螺旋曲线,要求可以设置点的大小、线可以设置线形和宽度。 在窗口中绘制
三角形
和四边形两个简单填充图形,要求它们能够被鼠标选中并随鼠标一起拖动,此外能够使用右键菜单分别设置两个简单图形的颜色。 利用
三角形
图元生成黑白相间的圆锥台,要求通过键盘或鼠标能够改变圆锥台地大端和小端直径 实验2、
编程
任务1——绘制钟表 编写一个程序,实现交互式的移动摄像机。显示一个或多个对象,并确保摄像机在移动时总是朝向场景中的同一点 实验3、
编程
任务1——绘制一个具有光照的房间
编程
任务2——绘制一个具有地板反光效果的房间 实验4、
编程
任务1——绘制一个具有纹理和光照的房间
编程
任务2——绘制一个具有背景纹理的钟表 ……
scratch创意
编程
《画任意正多边形》的教学设计.docx
scratch创意
编程
《画任意正多边形》的教学设计.docx
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章