end
结果分析:m=48时九、 寻找完数编程 ! program
do 100, i=1,1000,1 sum=0 do 10, k=1,i-1,1 if(mod(i,k).eq.0) then sum=sum+k end if 10 continue
if(sum.eq.i) print*,i 100 continue End
结果分析:
十二、同构数编程 ! program integer t
do 100,i=1,1000,1 j=i*i t=i do 10,while(t.gt.0) if(mod(j,10).eq.mod(t,10)) then j=j/10 t=i/10 if(t.eq.0) print*,i else t=(-1) end if 10 continue
100 continue End
结果分析:
1. double precision sum,x,temp sum=0 read*,x temp=x sign=1 i=1 do 100,while(abs(temp).gt.10e-015) sum=sum+sign*temp sign=sign*(-1) i=i+2 temp=temp*x*x/i/(i-1) 100 continue print*,'sum=',sum end
4. real l1,l2,l3,s,area complex x,y,z,g x=(1.5,2.0) y=(4.5,4.5) z=(18.0,10.5) g=(x+y+z)/3 l1=abs(x-y) l2=abs(y-z) l3=abs(x-z) s=(l1+l2+l3)/2 area=sqrt(s*(s-l1)*(s-l2)*(s-l3)) print*,'g=',g,'area=',area
第六章
end
9. character* 9,a,b,c,d,e a(5:5)='*' b(4:6)='***' c(3:7)='*****' d(2:8)='*******' e(1:7)='*********' print*,a print*,b print*,c print*,d print*,e print*,d print*,c print*,b print*,a end
第八章 1.矩形法. read*,a,b,n x=a h=(b-a)/n f0=1+exp(x) s=0.0 do 10,i=1,n si=f0*h s=s+si x=x+h f0=1+exp(x) 10 continue
write(*,100) a,b,n write(*,200) s
100 format(1x,'a=',f10.3,3x,'b=',f10.3,3x,'n=',i4)
200 format(1x,'s=',f15.8) End
梯形法
2.. read*,a,b,n h=(b-a)/(2.0*n) s=0.0 fa=1.0+exp(a) fb=1.0+exp(b) x=a+h f2=0.0 f4=1.0+exp(x) do 10,i=1,n-1 x=x+h f2=f2+1.0+exp(x) x=x+h f4=f4+exp(x) 10 continue
s=h/3.0*(fa+fb+4.0*f4+2.0*f2) write(*,100) a,b,n write(*,150) s
100 format(1x,'a=',f8.2,2x,'b=',f8.2,2x,'n=',i4) 150 format(1x,'s=',f16.7) End
4. 迭代法: read*,x,m do 10,i=1,m x1=(x*x+1)/4.0 if(abs(x-x1).gt.1e-04.and.i.le.10) then x=x1 else stop end if 10 continue write(*,*),x end
牛顿迭代法read*,x,m do 10,i=1,m x1=(x*x+1)/14.0 write(*,100) i,x1 if(abs(x-x1).gt.1e-04) then x=x1 else stop end if 10 continue