用C语言能不能解决丢番图年龄问题

Python010

用C语言能不能解决丢番图年龄问题,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

数学书上的题目,数学家丢番图的墓碑上刻着:他的生命的十二分之一是幸福的童年,过了生命的六分之一,他长出了细细的胡须,过了生命的七分之一,他结婚了,五年后他有了儿子,但儿子只活了他寿命的二分之一,儿子死后,他在极度悲痛中生活了四年,也与世长辞了。谁能给我源代码?

解析:

/*分析:

1.人不可能超过1000岁

2.这是个自然数集里的问题

所以用穷举法最好了*/

main()

{float i

for(i=0i<1000i++)

if((i/12+i/6+i/7+5+i/2+4)==i){

printf("\neag=%.0f",i)

break}

}

C语言,一个月学会,只是会,这个会就是说,你只知道一加一等于二,但怎么做乘除,为什么一加一等于二,怎么计算一加一等一二,这原理一个月学习是远远不够的。要用熟练,理解透,估计得一二十年甚至更久,这里面没深浅。楼主未接触编程语言,建议楼主去培训班,尽管培训班不怎么滴。自学的话压力很大,遇到问题根本就解决不了,你一个外门人员,一个环境搭建就让你一周做不完,你觉得很简单,不就是敲敲键盘么,实际上完全不是,一步错误,环境搭建都会失败,再个你遇到问题,根本不知道问题出在哪,没人指导除非你是天才,理解算法很快,算法也很牛掰,那么你学的很快。建议你去培训班,虽然培训班真的不怎么样。还有前端就业形势不看好,别培训前端,前端已经是满大街了,软件测试跟前端没多大关系,前端是web方面多些,学c语言终身受用。

早期电脑都直接采用机器语言,即用“0”和“1”为指令代码来编写程序,难写难读,编程效率极低。为了方便编程,随即出现了汇编语言,虽然提高了效率,但仍然不够直观简便。从1954年起,电脑界逐步开发了一批“高级语言”,采用英文词汇、符号和数字,遵照一定的规则来编写程序。高级语言诞生后,软件业得到突飞猛进的发展。

1953年12月, IBM公司程序师约翰·巴科斯(J. Backus) 写了一份备忘录,建议为IBM704设计一种全新的程序设计语言。巴科斯曾在“选择顺序控制计算机”(SSEC)上工作过3年, 深深体会到编写程序的困难性。他说:“每个人都看到程序设计有多昂贵,租借机器要花去好几百万,而程序设计的费用却只会多不会少。”

巴科斯的目标是设计一种用于科学计算的“公式翻译语言”(FORmula TRANslator)。他带领一个13人小组,包括有经验的程序员和刚从学校毕业的青年人,在IBM704电脑上设计出编译器软件, 于1954年完成了第一个电脑高级语言——FORTRAN语言。1957年,西屋电气公司幸运地成为FORTRAN的第一个商业用户, 巴科斯给了他们一套存储着语言编译器的穿孔卡片。 以后,不同版本的FORTRAN纷纷面世,1966年,美国统一了它的标准,称为FORTRAN 66语言。 40多年过去,FORTRAN仍然是科学计算选用的语言之一,巴科斯因此摘取了1977年度“图林奖”。

FORTRAN广泛运用的时候, 还没有一种可以用于商业计算的语言。美国国防部注意到这种情况, 1959年5月,五角大楼委托格雷斯·霍波博士领导一个委员会,开始设计面向商业的通用语言(Common Business Oriented Langauge) ,即COBOL语言。COBOL最重要的特征是语法与英文很接近, 可以让不懂电脑的人也能看懂程序;编译器只需做少许修改,就能运行于任何类型的电脑。委员会一个成员害怕这种语言的命运不会太长久, 特地为它制作了一个小小的墓碑。然而,COBOL语言却幸存下来。1963年,美国国家标准局将它进行了标准化。用COBOL写作的软件,要比其他语言多得多。

1958年,一个国际商业和学术计算机科学家组成的委员会在瑞士苏黎世开会,探讨如何改进FORTRAN,并且设计一种标准化的电脑语言,巴科斯也参加了这个委员会。1960年,该委员会在1958年设计基础上,定义了一种新的语言版本——国际代数语言ALGOL 60,首次引进了局部变量和递归的概念。 ALGOL语言没有被广泛运用,但它演变为其他程序语言的概念基础。

60年代中期, 美国达特默斯学院约翰·凯梅尼 (J. Kemeny) 和托马斯·卡茨(T.Kurtz)认为,象FORTRAN那样的语言都是为专业人员设计,而他们希望能为无经验的人提供一种简单的语言,特别希望那些非计算机专业的学生也能通过这种语言学会使用电脑。于是, 他们在简化FORTRAN的基础上, 研制出一种 “初学者通用符号指令代码”(Beginners All purpose Symbolic Intruction Code),简称BASIC。由于BASIC语言易学易用, 它很快就成为最流行的电脑语言之一,几乎所有小型电脑和个人电脑都在使用它。经过不断改进后,它一直沿用至今,出现了象QBASIC、VB等新一代BASIC版本。

1967年,麻省理工学院人工智能实验室希摩尔·帕伯特(S.Papert),为孩子设计出一种叫LOGO的电脑语言。帕伯特曾与著名瑞士心理学家皮亚杰一起学习,他发明的LOGO最初是个绘图程序,能控制一个“海龟”图标,在屏幕上描绘爬行路径的轨迹,从而完成各种图形的绘制。帕伯特希望孩子不要机械地记忆事实,强调创造性的探索。他说:“人们总喜欢讲学习,但是,你可以看到,学校的多数课程是记忆一些数据和科学事实,却很少着眼于真正意义上的学习与思考。 ” 他用LOGO语言启发孩子们学会学习,在马萨诸塞州列克星敦,一些孩子用LOGO语言设计出了真正的程序,使LOGO成为一种热门的电脑教学语言。

1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(N. Wirth)教授发明了另一种简单明晰的电脑语言,这就是以帕斯卡的名字命名的PASCAL语言。PASCAL语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的著作,因此,他获得了1984年度“图林奖”。

1983年度的 “图林奖” 则授予了AT&T贝尔实验室的两位科学家邓尼斯·里奇 (D.Ritchie)和他的协作者肯·汤姆森(K. Thompson),以表彰他们共同发明著名的电脑语言C。C语言现在是当今软件工程师最宠爱的语言之一。

里奇最初的贡献是开发了UNIX操作系统软件。他说,这里有一个小故事:他们答应为贝尔实验室开发一个字处理软件,要求购买一台小型电脑PDP-11/20,从而争取到10万美元经费。可是当机器购回来后,他俩却把它用来编写UNIX系统软件。UNIX很快有了大量追随者,特别是在工程师和科学家中间引起巨大反响,推动了工作站电脑和网络的成长。1970年,作为UNIX的一项“副产品”,里奇和汤姆森合作完成了C语言的开发,这是因为研制C语言的初衷是为了用它编写UNIX。这种语言结合了汇编语言和高级语言的优点,大受程序设计师的亲睐。

1983年,贝尔实验室另一研究人员比加尼·斯楚士舒普 (B.Stroustrup),把C语言扩展成一种面向对象的程序设计语言C++。如今,数以百万计的程序员用它来编写各种数据处理、实时控制、系统仿真和网络通讯等软件。斯楚士舒普说:“过去所有的编程语言对网络编程实在太慢,所以我开发C++,以便快速实现自己的想法,也容易写出更好的软件。”1995年,《BYTE》杂志将他列入“计算机工业20个最有影响力的人”的行列。