見出し画像

AtCoder Beginner Contest 144 / Python


● 初学者です。( 2019 / 9 ~ 現在3ヵ月目 )
● AtCoder の問題に Python で取り組んでいます。
● ABC で4問目(茶か緑)まで解けることを目標にしています。

完全に独学なのでコードは酷いと思います。

AtCoder やってる方、お気軽にコメントくださいませ。



a,b = map(int,input().split())

if a <= 9 and b <= 9:
   print(a*b)
else:
   print(-1)





n = int(input())

for i in range(9):
   
   p,q = divmod(n,9-i)
   
   if p <= 9 and q == 0:
       print("Yes")
       break

else:
   print("No")


メモ:divmod を使わない

n = int(input())

for i in range(9):
   
   if n /(9-i) <= 9 and n % (9-i) == 0:
       print("Yes")
       break

else:
   print("No")


メモ:ループを逆順で回す

n = int(input())

for i in reversed(range(1,10)):
   
   if n / i <= 9 and n % i == 0:
       print("Yes")
       break

else:
   print("No")





import math

n = int(input())

m = math.floor(math.sqrt(n))

for i in range(m):
   
   p,q = divmod(n,m-i)
   
   if q == 0:
       print((m-i) + p - 2)
       break


メモ:math なんて使う必要なかった

m = math.floor(math.sqrt(n))

m = int(n**0.5)


メモ:ループを逆順で回す

n = int(input())

m = int(n**0.5)

for i in reversed(range(m+1)):
   
   p,q = divmod(n,i)
   
   if q == 0:
       print(i + p - 2)
       break


メモ:余計っぽいものを全部カット

n = int(input())

for i in reversed(range(int(n**0.5)+1)):
   
   if n % i == 0:
       print(i + n//i - 2)
       break



約数を求めて真ん中の2つを取ろうと思ったが、
AtCoder では Sympy が使えないらしい。


メモ:約数の列挙

n = int(input())

d = []

for i in range(1,int(n**0.5) + 1):
   
   if n % i == 0:
       d.append(i)
       
       if i != n//i:
           d.append(n//i)

print(sorted(d))


メモ:sympy を使っても良いなら

import sympy

print(sympy.divisors(int(input())))


しかし英語圏の人は divisors とか単語を覚えなくて良いから羨ましい。
こんな単語知らん、でも英語圏では小学校の算数で習う単語なんだろうな。





import math

a,b,x = map(int,input().split())

if x/a >= b*a/2:
   
   y = 2*(b - x / (a*a))
   
   print(math.degrees(math.atan(y/a)))
   
else:
   
   y = 2*x / (a*b)
   
   print(math.degrees(math.atan(b/y)))


数学部分でミスして手間取ったから疲れた、コードはこんなもんでしょう。





わからん。

メモ:要「二分探索」





無理。

メモ:要「動的計画法」




マガジン:他の回もやっていきます。



いつもありがとうございます(´っ・ω・)っ サポートから決済手数料(クレカ5%、ケータイ15%) & プラットフォーム利用料10%が引かれてしまいます、 予めご了承ください(´;ω;`)。 残りは僕のご飯になります。ベリベリありがとうございます。