Fortran에서 "치탄다 탄다"
실행은 Intel visual fortran 2015beta에서. 안마 실행 결과를 확인하지 않았습니다 w
추기 : 척수 반사로 썼기 때문에 영어가 쌓여 G와 Z의 발음이 어느 쪽도 「지」가 되어 버렸어요 풀 불가피
추가: 수정했습니다. 드디어 코멘트를 달아 보았습니다.
합 숫자로 고치는 함수는 만의 자리까지만 대응하고 있습니다.
module m_jp
implicit none
character(len=8), parameter :: alpha(26) = ['えー','びー','しー','でー','いー',&
'えふ','じー','えっち','あい','じぇー','けー','える','えむ','えぬ','おー','ぴー',&
'きゅー','あーる','えす','てー','ゆー','ぶい','だぶりゅ','えっくす','わい','ずぃー']
character(len=2), parameter :: jnum1(0:9) = ['','一','二','三','四', &
'五','六','七','八','九']
character(len=2), parameter :: jnum2(4) = ['万','千','百','十']
contains
function jnumber(m)
integer, intent(in) :: m
character(len = :), allocatable :: jnumber ! f2003 可変長文字列
character(len = 5) :: tmp
integer :: i, k(5)
write(tmp, '(i5.0)') m ! internal file 5桁の整数値を文字列に
read(tmp, '(5i1.0)') k ! 文字列を1桁づつの整数に変換
jnumber = ''
do i = 1, 4
select case(k(i))
case(0)
cycle
case(1)
jnumber = jnumber // jnum2(i) ! 一千 等の一を避ける。
case(2:9)
jnumber = jnumber // jnum1(k(i)) // jnum2(i) ! 万、千、百、十の位
case default
stop 'unexpected input: jnumber'
end select
end do
jnumber = jnumber // trim(jnum1(k(5))) ! 一の位 一を出力する。空白カット。
end function jnumber
end module m_jp
program chitanda
use m_jp
implicit none
integer :: i
do i = 1, 1000
print *, jnumber(i), '反田', alpha(mod(i - 1, 26) + 1)
end do
end program chitanda
Reference
이 문제에 관하여(Fortran에서 "치탄다 탄다"), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cure_honey/items/815b29e5f68d980d3f84텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)