Program harus memasukkan input angka, awal kisaran dan akhir kisaran, dan menampilkan berapa banyak bilangan bulat yang muncul antara awal dan akhir rentang, termasuk . Program dan fungsi diizinkan.
Contoh Input
Sebagai contoh:
//Input example 1
3,1,100
//Input example 2
3
1
100
//Input example 3
3 1 100
//Input example 4
a(3, 1, 100);
Semua empat contoh input di atas adalah valid dan semuanya berarti bahwa itu 3
adalah angka yang dimaksud, 1
adalah awal dari rentang dan 100
akhir dari rentang.
Dan kemudian program harus output berapa kali 3
muncul dalam rentang dari 1
ke 100
inklusif . 3
muncul di bilangan bulat 3
, 13
, 23
, 30
, 31
, 32
, 33
, ..., 93
di total 19 kali. Jadi program harus menampilkan 19
sebagai keluaran karena itulah berapa kali 3
muncul dalam kisaran dari 1
ke 100
.
Aturan
- Program dan fungsi diizinkan.
- Semua angka akan berupa bilangan bulat, artinya tidak akan ada
float
s atau double
s.
- Catatan: nomor yang dicari akan selalu berada dalam kisaran
0≤x≤127
. Tidak akan ada kasus di mana ia akan berada di luar 0≤x≤127
kisaran ini .
- Seperti pada contoh pertama, dengan case as
33
, angkanya 3
akan dihitung hanya muncul sekali , bukan dua kali.
- Nilai-nilai awal dan akhir rentang akan antara
-65536
dan 65535
inklusif.
- Nilai mulai rentang tidak akan pernah melebihi atau sama dengan akhir rentang.
start < end
- Juga kisaran inklusif. Misalnya jika inputnya adalah
8 8 10
, rentang akan 8≤x≤10
dan karenanya output akan menjadi 1.
- Input dapat diambil dengan cara apa pun yang ditunjukkan dalam contoh. Input dapat diambil sebagai string atau sebagai angka, apa pun yang Anda inginkan.
Uji Kasus
3 1 100
19
3 3 93
19
12,-200,200
24 //This is because 12 appears in -129, -128, ..., -112, -12, 12, 112, 120, 121, 122, ...
123,1,3
0 //This is because all of 123's digits have to appear in the same order
3 33 34
2 //Because 3 appears in 2 numbers: 33 and 34
a(0,-1,1);
1
$ java NotVerbose 127 -12 27
0
Snippet Snack
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
/* Configuration */
var QUESTION_ID = 98470; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 41805; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
{a,b,c->}
Aww ... dangit, saya kalah sebelum saya mulai lagi.Ÿʒ³å}g
Bash, 20 byte
jawaban yang jelas
contoh
sumber
Perl, 20 byte
Disimpan 2 byte dengan menggunakan jawaban
grep
@ ardnew .Bytecount mencakup 18 byte kode dan
-ap
bendera.Berikan 3 angka pada tiga baris terpisah:
sumber
Python 2,
4743 BytesRelatif mudah, memanfaatkan
repr
bentuk pendek Python 2 .Ouput:
sumber
-~a
bukana+1
?JavaScript (ES6),
4645 byte(Versi non rekursif terbaik saya adalah 61 byte.) Sunting: Disimpan 1 byte berkat @ edc65.
sumber
!!match
bukannyaincludes
.Jelly , 7 byte
TryItOnline!
Input: Mulai, Akhir, Untuk Temukan
Bagaimana?
Pengecoran default sebuah integer ke iterable untuk pemeriksaan keberadaan sublist dilemparkan ke daftar desimal (bukan daftar karakter), jadi angka negatif memiliki nilai negatif utama (mis.
-122
->[-1,2,2]
yang tidak akan menemukan sublist dari[1,2]
) jadi ambil nilai absolut pertama tampaknya seperti solusi golf.sumber
PowerShell v2 +,
646256 byte-6 byte berkat mazzy
Input melalui argumen baris perintah dari nomor form lower_bound upper_bound . Sedikit konyol pada notasi, karena titik koma di dalam
for
menyebabkan kesalahan parse jika tidak dikelilingi$(...)
untuk membuat blok skrip. Kami pada dasarnya loop ke atas$a
sampai kami menekan$b
, menggunakanWhere-Object
(the|?{...}
) untuk menarik keluar angka-angka yang-match
melawan$c
. Itu dirangkum dalam parens, kita ambil.count
daripadanya, dan yang tersisa di pipa dan output tersirat.Namun, jika kami menjamin bahwa jangkauannya tidak lebih dari 50.000 elemen, kami dapat melewati loop dan cukup menggunakan operator jangkauan
..
secara langsung, untuk4543 byte . Karena itu tidak ada dalam spesifikasi tantangan, ini tidak valid. Kekecewaan.sumber
param($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count
param($c,$a,$b)($a..$b|?{$_-match$c}).count
Karya - karya dengan kisaran -65536..65535 padaPowershell 5.1
Vim,
46, 41 byteInput dalam format ini:
sumber
Haskell, 65 byte
The
import
reruntuhan skor. Contoh penggunaan:((-200)#200)12
->24
.sumber
Java 7 85 byte
sumber
Swift 3,
9693 byteEdit 1:
Disimpan 3 byte dengan menggunakan parameter singkatan
sumber
Scala, 50 byte
mengambil input kari pertama; sebut saja seperti ini:
f("12")(-200,200)
Penjelasan:
sumber
R, 32 byte
Cukup mudah:
sumber
a=scan();sum(grepl(a,a[2]:a[3]))
atau sebagai argumen untuk fungsifunction(a,b,c)sum(grepl(a,b:c))
:, keduanya setara dalam hal ini.C #, 71 byte
Kalahkan jawaban Java saya berkat lambdas
sumber
(n,s,e)=>s>e?0:((""+s).Contains(n+"")?1:0)+f(n,++s,e);
jauh lebih pendekRuby 44 byte
Kasus uji:
sumber
PHP, 62 byte
Pendekatan yang cukup lurus ke depan:
Cobalah online
sumber
<?=count(preg_grep("/$argv[1]/",range($argv[2],$argv[3])));
C,
143135 byteTerima kasih kepada @Kritixi Lithos karena membantu menghemat 8 byte
Tentunya ini bisa dilakukan dengan lebih baik, tetapi ini yang terbaik yang saya miliki untuk saat ini. C tidak menangani string dengan sangat anggun, jadi tentu saja dibutuhkan beberapa operasi.
Program + tidak digolkan
sumber
int i=l
dari for-loop dan bukannya menginisialisasi denganint t=0
seperti ituint t=0,i=l
untuk menyimpan beberapa byte.b[9],n[9],t;C(N,l,h){for(t=!sprintf(n,"%d",N);l<=h;strstr(b,n)&&++t)sprintf(b,"%d",l++);N=t;}
JavaScript,
4645 byteHitung secara rekursif hingga mulai> akhir
Sunting: Beralih ke tes RegExp untuk menyimpan byte
sumber
PHP,
6863 bytegunakan seperti:
sunting: 5 byte disimpan berkat Titus
sumber
strstr($a[2]++,$a[1])>""
bukannyastrpos($a[2]++,$a[1])!==false
menghemat 5 byte.Powershell, 48 byte
Menurut aturan, rentang dapat berisi lebih dari 50.000 elemen. Jadi kami tidak dapat menggunakan operator jangkauan
..
secara langsung. Terima kasih AdmBorkBork .Mudah:
Skrip uji:
Keluaran:
sumber
Japt ,
148 byteMembawa bilangan bulat untuk ditemukan sebagai nilai input terakhir.
Cobalah online
Penjelasan
sumber
33
, angkanya3
akan dihitung hanya muncul sekali, bukan dua kali. " Hitungan-kejadian AndaW
akan menghitung3
dua kali.Java,
928971 byteSekarang dengan lambdas!
Solusi fungsi 89 byte lama:
Hore untuk fungsi kenaikan super!
sumber
int i=l
dari for-loop dan sebaliknya mendeklarasikannya dengana
sukaint a=0,i=l;
menyimpan beberapa byteGolfSharp (tidak bersaing), 41 byte
bersaing 45 byte
sumber
I
fungsi untuk mengubah elemen menjadi string terlebih dahulu sebelum memeriksa apakah itu mengandung.Groovy, 48 byte
sumber
Racket 91 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
Aksioma byte 90
hasil
sumber
Mathematica, 70 byte
memasukkan
keluaran
sumber
Clojure, 65 byte
sumber
PHP, 56 Bytes
jalankan sebagai pipa. Cobalah secara online
Memasukkan
Kode
Penjelasan
sumber
Perl 6 , 32 byte
Cobalah online!
sumber