Tokoh serupa
Dua persegi panjang serupa jika rasio sisi mereka sama.
Pertimbangkan dua persegi panjang ini; persegi panjang 5 garis dan lebar 11 karakter:
===========
===========
===========
===========
===========
dan persegi panjang 10 garis dan 22 karakter lebar:
======================
======================
======================
======================
======================
======================
======================
======================
======================
======================
Bentuk-bentuk ini serupa karena rasio sisi-sisinya sama. Singkatnya (dengan sebagai sisi terpendek dan menjadi sisi terpanjang):
Anda juga dapat melakukan:
Tantangan
Tulis program atau fungsi yang mengambil persegi panjang "utama" dan beberapa persegi panjang dan cetakan "lainnya" yang mana dari "yang lain" mirip dengan "utama".
Input
Bentuk dan daftar bentuk. Setiap bentuk terdiri dari 2 bilangan bulat positif bukan nol, yang menunjukkan lebar dan tinggi persegi panjang. Misalnya, ini:
(4,2), (3,9)
menunjukkan dua persegi panjang, 4x2 dan 3x9. Format input yang tepat mungkin sesuai keinginan Anda.
Hasil
Indeks bentuk "lain" yang mirip dengan "utama". Anda dapat memilih apakah indeksnya berbasis 0 atau 1, serta format dan urutan output yang tepat.
Program sampel
Dengan Python:
main = eval(raw_input()) # The main rectangle.
rects = eval(raw_input()) # The list of rectangles.
similar = set()
for i, rect in enumerate(rects):
if max(main)*min(rect) == min(main)*max(rect): # Cross-multiply
# They are similar.
similar.add(i)
print similar
Input dan output sampel
Memasukkan:
(1, 2)
[(1, 2), (2, 4)]
Keluaran:
set([0, 1])
Memasukkan:
(1, 2)
[(1, 9), (2, 5), (16, 8)]
Keluaran:
set([2])
Kemenangan
Ini adalah kode-golf, sehingga pengiriman terpendek menang.
Catatan
- Ini harus dilakukan tanpa berkata, tetapi celah standar dilarang .
- Tidak ada builtin untuk menemukan angka yang sama dapat digunakan. (Aku bahkan tidak tahu kalau itu ada, tapi aku tidak akan terkejut!)
[(1,2), (2,4), (1,9), (2,5), (16,8)]
, apakah hanya [0,1,4]
dan [1,2,5]
diizinkan, atau bisakah kita juga menampilkan [1,1,0,0,1]
atau [(1,2), (2,4), (16,8)]
?
[1.0 2.0]
format input yang dapat diterima?