一个小程序 求教

langdeng2007 2008-08-05 09:03:42
已知 a(1)=10,a(2)=-3, a(n)=3a(n-1)+a(n-2),求{a(n)}前20项的和;

惭愧,初学;不会,请教?
...全文
254 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysysbaobei 2008-08-08
  • 打赏
  • 举报
回复
mark
wslfjnu 2008-08-08
  • 打赏
  • 举报
回复
记号
langdeng2007 2008-08-07
  • 打赏
  • 举报
回复
有递归,数组,循环,学到了3种方法!又知道了一些效率的问题,很感谢各位!
xuhuanzhe 2008-08-06
  • 打赏
  • 举报
回复
递归问题,用递归代码简洁,也容易理解。
ecjtuhr 2008-08-06
  • 打赏
  • 举报
回复

#include <stdio.h>
int a(int n)
{
if(n==1)
return 10;
if(n==2)
return -3;
return (3*a(n-1)+a(n-2));
}

int main()
{
int sum=0;
int n;
for(n=1;n <=20;n++)
sum+=a(n);
printf("The sum is %d\n",sum);
return 0;
}

正确!
fansyong 2008-08-06
  • 打赏
  • 举报
回复
以上你们写的程序,不就是函数的递规调用吗?
bitxinhai 2008-08-06
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;

void main()
{
int a[20];
a[0] = 10;
a[1] = -2;
int sum = a[0] + a[1];
for(int i = 2;i < 20;i++)
{
a[i] = 3*a[i-2] + a[i-1];
sum += a[i];
}
cout<<sum<<endl;
}
hongyzniu 2008-08-06
  • 打赏
  • 举报
回复
不好意思 上题的num3=num2+(3*num1);
按照题目意思应该是num3=3*num2+num1;



/*递归做法,不大可取~
*/
#include <stdio.h>
#include <stdlib.h>

int fun(int n)
{
if(n==1)
{
return 10;
}
if(n==2)
{
return -3;
}
else return 3*fun(n-1)+fun(n-2);
}

int main()
{
int i;
int s=0;
for(i=1;i<=20;i++)
{
s+=fun(i);
}
printf("%d\n",s);
return 0;
}
hongyzniu 2008-08-06
  • 打赏
  • 举报
回复
/************
此题可以用递归,也可以用迭代
**************/

#include <stdio.h>
#include <stdlib.h>

int main()
{
int num1=10;
int num2=-3;
int num3;
int s=7; //前两项的和
int i;
for(i=1;i<=18;i++)
{
num3=num2+(3*num1);
s+=num3;
num1=num2; //把三项当中下标最小的用第二小的替换
num2=num3; //把三项当中下标最大的替换第二小的数
}
printf("%d\n",s);
return 0;
}
gesanri 2008-08-06
  • 打赏
  • 举报
回复

main()
{
int a[21],i,sum;
a[1]=10,a[2]=-3;
sum=a[1]+a[2];
for(i=3;i<=20;i++)
{
a[i]=3*a[i-1]+a[i-2];
sum+=a[i];
}
printf("%d",sum);
getch();
}
e_sharp 2008-08-06
  • 打赏
  • 举报
回复
循环
	int a1,a2,a;
a1=10;
a2=-3;
sum = a1+a2;

for(n=3;n<=20;n++) {
a = 3*a2 + a1;
sum += a;

a1=a2;
a2=a;
}

printf("The sum is %d\n",sum);
chenfeng2002 2008-08-06
  • 打赏
  • 举报
回复
8楼不错!~
ChamPagneZ 2008-08-06
  • 打赏
  • 举报
回复

//这个题目是绝对不应该用递归的,太慢了,否则只能叫舍本逐末!!
sico_ 2008-08-06
  • 打赏
  • 举报
回复
这个效率比前面的高
[Quote=引用 8 楼 CSYNYK 的回复:]
手头没有编译器,搂住自己编译一下!

int function(unsigned int element_total) //参数为求和的元素个数
{
int a_n1=10, a_n2=-3, temp=0, sum=0,i=0;
if(element_total==1)
return 10;
else if(element_total==2)
return 7;
else
{
sum=a_n1+a_n2;
for(i=2; i <element_total; i++)
{
temp=3*a_n2+a_n1;
sum+=temp;
a_n1=a_n2;
a_n2=temp;
}
return sum;
}
}
[/Quote]
_石头_ 2008-08-06
  • 打赏
  • 举报
回复
手头没有编译器,搂住自己编译一下!

int function(unsigned int element_total) //参数为求和的元素个数
{
int a_n1=10, a_n2=-3, temp=0, sum=0,i=0;
if(element_total==1)
return 10;
else if(element_total==2)
return 7;
else
{
sum=a_n1+a_n2;
for(i=2; i<element_total; i++)
{
temp=3*a_n2+a_n1;
sum+=temp;
a_n1=a_n2;
a_n2=temp;
}
return sum;
}
}
mz_zhang 2008-08-05
  • 打赏
  • 举报
回复
#include<stdio.h>

int a(int n)
{
if(n==1)
return 10;
if(n==2)
return -3;
return (3*a(n-1)+a(n-2));
}

int main()
{
int sum=0;
int n;
for(n=1;n<=20;n++)
sum+=a(n);
printf("The sum is %d\n",sum);
return 0;
}


理论上对
但是int的最大值 是多少?是不是溢出了?
ykx_yeer 2008-08-05
  • 打赏
  • 举报
回复
用递归代码简洁,也容易理解,干嘛不用递归啊?
lunarfan 2008-08-05
  • 打赏
  • 举报
回复
不用递归就用循环~~~~
langdeng2007 2008-08-05
  • 打赏
  • 举报
回复
请问不用递归该怎么做呢?
realdragon2 2008-08-05
  • 打赏
  • 举报
回复

#include<stdio.h>

int a(int n)
{
if(n==1)
return 10;
if(n==2)
return -3;
return (3*a(n-1)+a(n-2));
}

int main()
{
int sum=0;
int n;
for(n=1;n<=20;n++)
sum+=a(n);
printf("The sum is %d\n",sum);
return 0;
}

AutoLISP 培训教程 单元一:AutoLISP 主角潇洒登场 一. AutoLISP 是何方神圣? 1、AutoLISP 是 AutoCAD 的最佳拍檔! 2、AutoLISP 内含于 AutoCAD 软件内,不用另外花钱买! 3、AutoLISP 是强化 AutoCAD 最好、最直接的『程序语言』! 4、AutoLISP 易学、易用,即使不会程序设计的 AutoCAD 使用者,都能在最短的 时间内,写出令人惊 讶、赞叹的功能! 若说 AutoLISP 的出现,是替 AutoCAD 创造一片天的『最大功臣』,实不为过一点也不夸张! 5、AutoLISP 希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷! 二. AutoLISP 程序语言的特质分析: 学习 AutoLISP 是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写 出精彩漂亮的 AutoLISP 程序! 语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而 有其独特的风格! 功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合 AutoCAD 的特殊函数,再加上 AutoLISP 可直接呼叫执行所有 AutoCAD 的指令,以及掌握运用所有的 AutoCAD 系统变量,功能之强 大令人欣喜不已! 撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:Windows 的记事本、PE2、PE3、DW3、 书中仙、汉书、EDIT....等 直译式程序: 不用再作编译,『即写即测、即测即用』,马上可以在 AutoCAD 中响应效果,马上就 有成就感! 横跨各作业平台:悠然自得,虽然 AutoCAD 有 DOS、Windows 版本之分但是 AutoLISP 却可在不改 写的原貌下,加载与执行! 三.撰写 AutoLISP 的动机? 1、欲强化 AutoCAD 原有指令时. 2、欲创造更有用的 AutoCAD 新指令. 3、欲简化繁琐的环境设定或绘图步骤时. 4、欲处理参数式绘图时. 5、欲做图面资料读文件、写文件. 6、欲做 AutoCAD 演示文稿展示时. 7、欲达到真正灵活掌控 AutoCAD 时. 8、欲提升自己跨上 AutoCAD 高手列车时. 四.AutoLISP 的效益评估? 1. 对公司负责人或设计主管而言: A. 也许某员工或干部花了 20 个小时撰写一个 AutoLISP 程序,表面上,这将近三天的时间,他连一张 图都没有画,甚至可能偶有发呆、沉思,若此程序一天可以替公司绘图部门节省 1 小时绘图时间,那 算一算,只要 20 天就抵销开发成本,而 20 天以后都是赚的,『用的愈久,省的愈多』! B. 若员工皆有此动力,在不影响正常工作,『鼓励』都来不及,那有『压抑』的道理,甚至还要派遣优 秀人员出去受训,学习更好的设计技巧与创意呢?! C. 千万不要因为您的不懂或压抑,SHOW 您的权威与 POWER,如此,不但对员工造成打击,甚至您可 能成为阻碍了公司计算机化进步的罪魁祸首 D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥 无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。 2. 对设计人员而言: A. 得到一笔提升绩效奖金呢? 当然,无形中,『AutoCAD 高手的封号』也将黄功力又往前迈出了一 大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以袍加身,不亦乐乎!!! B. 『半桶水、响叮当』,千万不要因为会写 AutoLISP 程序而自傲、孤僻、嚣张起来,功力的增长, 只是让您有更多『服务他人、服务公司』的机会,若自恃过重,宁可不要! C. AutoLISP 程序功力的累进,是无远弗届的,千万不要『孤芳自赏』,『人外有人,天外有天』,也许 您觉得是『宝贝加三级』的程序,只是其它设计师基本程序中的一部份罢了! D. 既然 AutoLISP 是 AutoCAD 的『最大功臣』,当然不会轻易被舍弃,如此,您的学习,保证不会白 费! E. 『精益求精』、『虚心求教』、『用心学习、观摩』、『决心成为高手』 3.对程序本身而言: A. 少少的几行,却可能有『大大满意』的时候!!! B. 充份掌握了控制、 创造 AutoCAD 的 『尚方宝剑』 ,让您在 AutoCAD 的设计运作中 『得心应手』 , 享受无比的快乐与成就感!!! 五.如何有效的学习 AutoLISP ? 1、先由小程序着手,认识 AutoLISP 语法规定! 2、浏览所有的 AutoLISP 功能函数,重要的功能函数要熟记脑海,俗语说的好『一回生,二回熟』, 除非您不用心,否则没有学不好的道理!!! 3、要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是
论网络安全的重要性全文共2页,当前为第1页。论网络安全的重要性全文共2页,当前为第1页。论网络安全的重要性 论网络安全的重要性全文共2页,当前为第1页。 论网络安全的重要性全文共2页,当前为第1页。 随着互联网络的发展和普及,人们的生活方式、学习以及工作也发生了很大的变化,人们生活中的点点滴滴都与网络有着密切的联系,互联网给我们提供了丰富的资源以便于我们共享,提高了灵活性和便捷性。 在科学技术高速发展的背景下,我国已经离不开互联网技术的支持,在社会的各个行业领域互联网技术的重要作用依然不容忽视,是促进国家和社会综合发展的重要推手。如今,互联网已经深入到社会的各个角落,网络成了人们工作与生活中不能缺少的,人们发现各种工作已经脱离传统的管理模式,进入到"网络信息化"办公时代,因此,计算机的故障、网络信息的安全性,甚至网络病毒对于企业来说已经是非常重要的大事,一旦网络系统出现了问题,这将是整个企业的大故障,有一些金融、物流、交通、经济等企业公司,网络系统如果发生故障的话,完全可以导致企业业务的中断,甚至导致企业的停业。因此,网络信息安全对一个企业公司来讲是非常重要的,需要高度重视。 由于互联网的不断发展,互联网在人们日常生活当中以及学习工作中应用率越来越高,从而使网络信息安全技术的发展前景非常可观,首先,随着市场需求的不断增加,网络安全维护类软件的销售量不断攀升。其次,维护网络安全的相关软件的开发也逐渐向多元化发展,最后,由于我国目前的网络信息安全技术虽然在进步但是仍处于发展的阶段,要想达到发展水平较高的很多国家的水准还有很长的路要走,我们要正式这一客观事实,这也告诉我们要虚心求教,尤其对于那些网络软件开发商而言,要善于从其他国家和地区学习先进的技术和手段,为我所用,从各个角度减少我国网络信息安全存在的安全隐患。 我们要做的不仅是防范于未然,提前做好防备工作,而且要重视该领域法律制度的建设,从法律层面为网络安全提供必要保障,二者形成合力,才能切实维护好维护信息安全。 完善法律法规,充分发挥法律法规的约束和规范作用,加大对网络犯罪的严惩力度。除此之外,提高行业专业人士的综合素质也不失为一种有效措施,针对网络安全问题在他们中间开展相应的培训,提高他们的职业道德,不屑于做出危害网络安全的行为。此外,还应该从青少年入手,对他们进行网络信息安全教育。 论网络安全的重要性全文共2页,当前为第2页。论网络安全的重要性全文共2页,当前为第2页。在网络信息高速发展的背景下,我国在网络信息安全维护技术方面也取得一定的成就,为互联网的信息安全提供了有效的屏障。网络安全事关重大,影响深远,直接影响到计算机系统数据和程序的安全。所以,网络安全的防御要面面俱到,综合考虑各方面的影响,只有这样才有可能有效预防网络安全问题的发生。 论网络安全的重要性全文共2页,当前为第2页。 论网络安全的重要性全文共2页,当前为第2页。 论网络安全的重要性

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧