登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
现在利用Fortran语言计算一道网络上常见的有意思的小题目,首先回顾一下题目:一篮子鸡蛋,2个2个拿剩1个,3个3个拿,7个7个拿和9个9个拿都能拿完,4个4个拿,5个5个和8个8个拿也剩1个,6个6个拿剩3个,求篮子里至少有多少枚鸡蛋?
(1)在写代码前,可以先思考一下题目,既然7个7个拿和9个9个拿都能拿完,说明篮子里鸡蛋至少有63枚,所以在下面的代码中就以63为计算起点,并且把篮子中鸡蛋数量的上限设为1000枚,具体代码如下。 programcalculate eggs integerisum n=1000 doisum=63,n i2=int(isum/2) i3=int(isum/3) i4=int(isum/4) i5=int(isum/5) i6=int(isum/6) i7=int(isum/7) i8=int(isum/8) i9=int(isum/9) if(2*i2+1.eq.isum .and. 3*i3.eq.isum .and. & 4*i4+1.eq.isum .and. 5*i5+1.eq.isum .and. & 6*i6+3.eq.isum .and.7*i7.eq.isum .and. & 8*i8+1.eq.isum .and. 9*i9.eq.isum)then write(*,*)'eggs=',isum endif enddo end (2)执行这个程序,计算结果就出来了,eggs=441枚。 (3)如果把鸡蛋数量的上限设为了10000会是什么结果?即将n改为n=10000,然后重新编译(Compile)、建立(Build)和执行(Execute)这个程序脚本,此时结果为eggs=441,2961,5481,8001。也就是如果不设置篮子中鸡蛋数量的上限,该题目有无数个解。然后,fortunately,该题目问得是“求篮子里至少有多少枚鸡蛋”?所以篮子中至少有441枚鸡蛋。 (4)也可以把计算结果写到text文档中,只需添加open语句打开文件和write语句写入文件,同时增加format语句说明写入格式(见下图红框标注的代码),然后编译(Compile)、建立(Build)和执行(Execute)改进的程序,此时eggs工程目录下多了名为egg.txt的文本文档,打开该文本文档,便可找到输出的计算结果。eggs=441是本题所要的正确答案,即篮子中至少有441枚鸡蛋。
|