Biarkan n
menjadi berapa kali program Anda telah dieksekusi. Jika n
kekuatan 2, maka cetak di 2^x
mana n = 2^x
; jika tidak, cukup tampilkan angkanya. Contoh dijalankan:
[1st time] 2^0
[2nd time] 2^1
[3rd time] 3
[4th time] 2^2
[5th time] 5
dan seterusnya. Ini adalah kontes popularitas, jadi jawabannya dengan kemenangan terbanyak menang ..
popularity-contest
Jwosty
sumber
sumber
0
di jalankan pertama?n = 2^x
? Kalau tidak, yang kedua adalah output2^4
, yang keempat2^16
dan seterusnya.1
adalah kekuatan dua.2^0=1
x = 2^x
daripadan = 2^x
Jawaban:
Java - Penyalahgunaan API
Ada banyak komputer daring yang dapat dihitung, jadi mengapa menyimpan sendiri hitungannya?
Penyalahgunaan penuh atas Stack API untuk mendapatkan kuota dan sisa kuota untuk melihat berapa kali telah dijalankan hari ini:
Jelas ini hanya berfungsi dengan kuota harian baru untuk IP Anda, dan hanya sampai kuota. Jika Anda ingin dukungan untuk nomor yang lebih tinggi, kirim [permintaan fitur] untuk naik
quota_max
keMAX_INT
.sumber
JavaScript
alert((n=Math.log((l=localStorage).m=~~l.m+1)/Math.log(2))==(n|0)?"2^"+n:l.m)
Peringatan berturut-turut adalah sebagai berikut:
sumber
C - menulis ke executable
Kode C ini memperbarui string
data
dalam executable, jadi pada dasarnya ini adalah kode modifikasi diri. Jika Anda menjalankannya lebih dari 9.999.999 kali, Anda mendapatkan hal-hal menarik.sumber
gcc test.c
,./a.out
2^0 Segmentation fault (core dumped)
Jawa
Kode berikut memodifikasi file kelasnya sendiri untuk menyimpan jumlah proses yang baru. Ini sangat menyenangkan ketika Anda tidak tahu bagaimana tampilan kode byte, tetapi setelah berjam-jam Googling dan Pengujian akhirnya bekerja! :)
Demo (menggunakan 7 sebagai nilai awal untuk tujuan demo):
Kode:
sumber
dg
Di sini saya berikan Anda kode portabel! Setiap kali dijalankan,
#
ditambahkan di akhir, membuat bilah kemajuan! Anda juga dapat memindahkan kode ke komputer lain dan melanjutkan dari tempat Anda sebelumnya.Setelah 18 kali:
sumber
Contoh Ruby Berbasis Sinatra
Solusi berbasis server ini menyimpan penghitung pribadi untuk setiap pengguna dalam cookie.
Cobalah di http://every-2-to-the-n-times.herokuapp.com/
sumber
perl
Berikut sedikit perl untuk melakukannya. Di mana seharusnya data disimpan? Kenapa di file program itu sendiri, tentu saja! =)
Awalnya saya telah menggunakan pegangan file DATA ajaib seperti itu, tetapi saya merasa di atas "lebih murni":
sumber
tell DATA
sebelum Anda membacanya, lalu mencari kembali ke tempat itu.Pesta
Script shell mengedit diri yang sederhana.
sumber
Pesta
Aku seperti dfernig 's solusi Bash , tapi saya ingin posting saya juga:
Saya pikir solusinya dapat dianggap berbeda, karena
"Memori" adalah ukuran skrip (awalnya 171 byte), yang meningkat sebesar 1 dengan menambahkan baris baru pada setiap eksekusi.
Powers of 2 dikenali dengan mengubah ukuran program (minus 170, tentu saja) menjadi biner, dan kemudian menghitung yang: jika ada tepat satu, maka n adalah kekuatan 2. Eksponen adalah jumlah nol dalam biner .
sumber
Solusi Java
Gunakan API preferensi java untuk menyimpan jumlah proses; dan menghitung ulang kekuatan 2 untuk dibandingkan dengan peta hash
sumber
Javascript
Saya memilih untuk tidak menggunakan
log2
solusi yang jelas tetapi bekerja dengan operator bitwise untuk menemukan posisi bit tunggal dalam representasi biner kekuatan 2 angka.sumber
for
loop dari 1 hingga 130, dengan rendering ...: /Rubi
Baiklah, saya pikir saya akan mencoba ini sekarang. Ia mencari sendiri definisi
n
.(diuji dalam Ruby 1.9.3)
sumber
Fortran 77
Kode:
Hasil:
sumber
C
Salah satu cara "tepat" untuk melakukannya (tanpa menggunakan file, yaitu).
Anda dapat memberikannya
reset
di baris perintah untuk mengaturnya kembali ke nol. Anda juga dapat memindahkan atau menyalin file yang dapat dieksekusi. Memindahkan yang dapat dieksekusi akan menyetel ulang, dan banyak salinan yang dapat dieksekusi independen.sumber
Sparkling, 423 karakter (kode modifikasi lain). Simpan
count.spn
saat dijalankanspn count.spn
:sumber
Berikut solusi Python 3 cepat, yang menggunakan file data untuk menyimpan
n
dan dix
antara berjalan:Output menjalankannya 16 kali:
sumber
Python 2
sumber
C #
Ini, bagaimanapun, mengharuskan Anda menentukan properti pengaturan dalam proyek Visual Studio Anda:
sumber
C / POSIX
Program ini menggunakan jumlah tautan keras yang dapat dieksekusi sebagai penghitung dari seberapa sering dipanggil. Itu menciptakan tautan keras baru di direktori tempat ia dimulai (karena dengan cara itu dijamin berada pada sistem file yang sama), yang karenanya memerlukan izin menulis. Saya telah menghilangkan penanganan kesalahan.
Anda lebih baik memastikan bahwa Anda tidak memiliki file penting dengan nama yang sama dengan salah satu tautan keras yang dibuat pada direktori itu, atau itu akan ditimpa. Jika misalnya executable dinamai
counter
, tautan keras akan dinamaicounter_1
,counter_2
dll.Contoh run (baris pertama me-reset counter, jika eksekusi sudah dijalankan):
sumber
Fortran 95
File bernama "a" (tanpa ekstensi) melacak jalannya program.
sumber