Saya perlu menguji apakah setiap angka dari 1 hingga 1000 adalah kelipatan 3 atau kelipatan 5. Cara yang saya pikir akan saya lakukan ini adalah dengan membagi angka dengan 3, dan jika hasilnya adalah bilangan bulat maka itu akan terjadi. menjadi kelipatan 3. Sama dengan 5.
Bagaimana cara menguji apakah nomor tersebut adalah bilangan bulat?
ini kode saya saat ini:
n = 0
s = 0
while (n < 1001):
x = n/3
if isinstance(x, (int, long)):
print 'Multiple of 3!'
s = s + n
if False:
y = n/5
if isinstance(y, (int, long)):
s = s + n
print 'Number: '
print n
print 'Sum:'
print s
n = n + 1
Jawaban:
Anda melakukan ini menggunakan operator modulus,
%
mengevaluasi benar jika dan hanya jika
n
merupakan kelipatan tepat darik
. Dalam matematika dasar, ini dikenal sebagai sisa dari sebuah pembagian.Dalam pendekatan Anda saat ini, Anda melakukan pembagian dan hasilnya akan baik
Itu hanya cara yang salah untuk menguji keterpisahan.
sumber
0 == 0*5
Anda cukup menggunakan
%
operator Modulus untuk memeriksa pembagian.Sebagai contoh:
n % 2 == 0
berarti n habis habis dibagi 2 dann % 2 != 0
berarti n tidak habis habis dibagi 2.sumber
Saya memiliki pendekatan yang sama. Karena saya tidak mengerti cara menggunakan operator module (%).
6% 3 = 0 * Ini berarti jika Anda membagi 6 dengan 3 Anda tidak akan memiliki sisa, 3 adalah faktor dari 6.
Sekarang Anda harus menghubungkannya dengan masalah Anda.
if n% 3 == 0 * Ini mengatakan, jika bilangan saya (n) habis dibagi 3 meninggalkan sisa 0.
Tambahkan pernyataan kemudian (cetak, kembalikan) dan lanjutkan
sumber
Anda dapat menggunakan % operator untuk memeriksa pembagian nomor tertentu
Kode untuk mengecek apakah diberikan no. habis dibagi 3 atau 5 jika tidak. kurang dari 1000 diberikan di bawah ini:
sumber
Kode ini tampaknya melakukan apa yang Anda minta.
Atau semacamnya
Atau beberapa hal.
sumber
sumber
x=10000000000000000; b = str(x/(x-1)); b
di interpreter python.Untuk jumlah kecil
n%3 == 0
akan baik-baik saja. Untuk bilangan yang sangat besar saya mengusulkan untuk menghitung jumlah silang terlebih dahulu dan kemudian memeriksa apakah jumlah silang tersebut adalah kelipatan 3:sumber
Coba ini ...
sumber
jinja2 template fizzbuz:
sumber
Cara paling sederhana adalah dengan menguji apakah suatu bilangan adalah bilangan bulat
int(x) == x
. Sebaliknya, apa yang dikatakan David Heffernan.sumber