昨日の今日ではあるものの、残り三つだけなのでサクッと終わらせました
なお、文字列が面倒でpythonに甘えた模様
組み込み関数が色々豊富だから 仕方ないね(レ)
No.48
implicit none
integer(8) A,X,Y,L
read(*,*) X
read(*,*) Y
read(*,*) L
if (mod(X,L)==0) then
if (mod(Y,L)==0) then
A=abs(X/L)+abs(Y/L)
else
A=abs(X/L)+abs(Y/L)+1
end if
else
if (mod(Y,L)==0) then
A=abs(X/L)+1+abs(Y/L)
else
A=abs(X/L)+abs(Y/L)+2
end if
end if
if (Y>=0) then
if (X==0) then
A=A+0
else
A=A+1
end if
else
A=A+2
end if
write(*,*) A
end
我らが鉄人28号を動かすための簡単なシステム ガンダムでも可
・移動にかかる手数
・y軸による場合分けを用いた向きの変更に伴う手数の変化
二つ目はx軸でも場合分けはできますが、パターンがより複雑になるのでお勧めはしません
小数点以上は全て切り上げ、みたいな関数Fortranにないんですかね・・・
No.296
implicit none
integer(8) A,B,C,m
integer(8),allocatable :: x(:)
allocate (x(4))
read(*,*) (x(m),m=1,4)
B=(x(1)-1)*x(4)
select case (B)
case(:59)
x(3)=x(3)+B
case(60:)
x(2)=x(2)+(B/60)
B=B-(B/60)*60
x(3)=x(3)+B
end select
if (x(3)>=60) then
x(2)=x(2)+1
x(3)=x(3)-60
end if
C=0
do while (x(2)>C)
C=C+24
end do
x(2)=x(2)-C+24
if (x(2)==24) then
x(2)=0
end if
write(*,*) x(2)
write(*,*) x(3)
end
見事ひっかけに嵌った私です
何故、24時間を超えると予想できなかったのか・・・コレガワカラナイ
"C=0"から下の部分を最初書いてなくて、初っ端のテストケースで1247とか表示させました
一日は24時間ダルルォ、というわけできちんと日にちも考えようね! あと、24時を0時に直そう!
これくらいです
(特に解説することも)ないです
そもそも、頭からガジガジするような解き方している時点で解説もへったくれもないのですが・・・(名推理)
No.69
A=list(input())
B=list(input())
A.sort()
B.sort()
C=0
for i in range(len(A)):
if A[i] != B[i]:
C += 1
else:
C += 0
if (C>0):
print("NO")
else:
print("YES")
面倒だったのでpythonに甘えました
ごくごく普通の文字列ならFortranでも書くんですけどぉ (言い訳)
上から四行の部分はワンライナーで書けそう・・・書けそうじゃない?
私は見栄えとしてのワンライナーは好きなんですが、自分で書く気にはならないです
いや、pythonのワンライナーで書かれたのは古文書にしか見えない・・・見えなくない?
後で見返したときに、何がどうなっているのかを辿るのがいやで、練習してないです
そもそも書けって言われても書かないんですけどね、初見さん
一度先輩にChekiOの解答見せたのですが、
『pythonの良さを全否定するプログラミングを初めて見たwwwwww』
と爆笑されました 絶対許早苗
・文字の比較を行って、違っていたらその数をカウントして、0以上なら全部"NO"
という単純なプログラムです
ぐぬぬぬ・・・次回から何をしようか、考え中
本日は以上!