编写程序 【程序功能】 在给定范围内查找k,使得公式k2+k+17生成的整数满足以下条件:该数的十进制表示中低3位数字相同,去掉低3位后的整数是回文数。例如,当k=461时,用公式生成的整数是212999,该数满足条件。 【编程要求】 (1)编写函数子程序

admin2019-04-04  70

问题 编写程序
【程序功能】
在给定范围内查找k,使得公式k2+k+17生成的整数满足以下条件:该数的十进制表示中低3位数字相同,去掉低3位后的整数是回文数。例如,当k=461时,用公式生成的整数是212999,该数满足条件。
【编程要求】
(1)编写函数子程序found(n1,n2,array)以实现以下功能:k依次取n1~n2范围内的每个整数,分别用每个k及公式k2+k+17生成整数y,若y满足给定条件,则将k值及y值保存到array数组中,函数返回array数组及数组中k的个数。
(2)编写主程序,实现以下功能:声明二维数组array(10,2)和变量n1、n2,输入两个整数并保存到n1、n2中,用n1、n2及array数组作为实参调用found函数,按所给格式输出array数组中的数据到屏幕及文件myf2out中。
【测试数据及运行结果】输入:n1=1,n2=10000输出:k number
461 212999
586 343999
3839 14741777
【要求】
(1)源程序必须存放在文件MYF2F90中。
(2)数据文件的打开、使用、关闭均要求采用FORTRAN语言文件管理语句实现。
(3)程序运行结果存于文件MYF2OUT中。
(4)本题完成后必须将MYF2F90、MYF2OUT复制到考试盘(盘符为T:)的根目录下供阅卷用。

选项

答案! 1,10000 ! k number ! 461 212999 ! 586 343999 ! 3839 14741777 ! Pressanykeytocontinue functionfound(n1,n2,array)result(found_res) implicitnone integer::n1,n2,found_res integer,dimension(10,2)::arrayinteger::i,j,x1,x2,x3,y,k i=0 dok=n1,n2 y=kk+k+17 x1=y/1000;x2=x1;x3=0dowhile(x1>0) x3=x310+mod(x1,10); x1=x1/10enddo if(x2==x3.and.mod(y,10)==mod(y/10,10).and.mod(y,10)==mod(y/100,10))then i=i+1 array(i,1)=karray(i,2)=yendif enddofound_res=iendfunction programmainimplicitnone integer::n1,n2,found integer,dimension(10,2)::arrayinteger::i,j open(1,file="myf2.out") read,n1,n2 j=found(n1,n2,array) print"(2a12)","k","number"write(1,"(2a12)")"k","number"doi=1,j print,array(i,1),array(i,2)write(1,),array(i,1),array(i,2) enddoclose(1) Endprogram

解析
转载请注明原文地址:https://kaotiyun.com/show/vbhZ777K
0

最新回复(0)