Nhiệm vụ của bạn là viết một chương trình đầy đủ hoặc chức năng mà mất không có đầu vào và chạy bất kỳ loại vòng lặp ( while
, for
, foreach
, do
, do-while
, do-loop
, goto
, đệ quy, vv) mà sẽ kết thúc trong gây ra lỗi, có nghĩa là chương trình phải dừng lại tự chạy và lối ra.
Quy tắc:
- Lỗi phải là lỗi thời gian chạy, ngoại lệ chưa được xử lý hoặc bất cứ điều gì làm cho chương trình tự kết thúc.
- Lỗi phải tạo ra điểm dừng và thoát khỏi chương trình mà không gọi rõ ràng
exit;
(hoặc tương đương) tại một số điểm. - Các thông báo như
Warning:
,Notice:
v.v., không khiến chương trình tự kết thúc không hợp lệ. Ví dụ, trong các phân chia PHP bằng 0 tạo ra mộtWarning
thông báo nhưng chương trình sẽ không dừng lại và vẫn sẽ chạy, đây không phải là một câu trả lời hợp lệ. - Vòng lặp phải chạy ít nhất một chu kỳ đầy đủ. Nói cách khác, lỗi có thể xảy ra bắt đầu từ chu kỳ thứ hai và hơn thế nữa. Điều này là để tránh gây ra lỗi sử dụng cú pháp mã không chính xác: mã phải đúng về mặt cú pháp.
- Vòng lặp có thể là vô hạn (ví dụ
for(;;);
) nếu nó tuân thủ các quy tắc đã nói ở trên, nhưng phải mất không quá 2 phút để tự kết thúc trong một lỗi thời gian chạy. - Đệ quy không có Tối ưu hóa cuộc gọi Tail là không hợp lệ ( 1 , 2 ).
- Đây là môn đánh gôn nên mã ngắn nhất sẽ thắng.
- Sơ hở tiêu chuẩn bị cấm.
Ví dụ C # ( kiểm tra trực tuyến ):
using System;
public class Program {
public static void Main() {
int i;
int[] n;
n = new int[5];
for(i=0; i<7; i++) {
n[i] = i;
Console.WriteLine(n[i]);
}
}
}
Output:
0
1
2
3
4
Run-time exception (line 9): Index was outside the bounds of the array.
Stack Trace:
[System.IndexOutOfRangeException: Index was outside the bounds of the array.]
at Program.Main(): line 9
Bảng xếp hạng:
var QUESTION_ID=104323,OVERRIDE_USER=59718;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important;font-family:Arial,Helvetica; font-size:12px}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}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>
Cảm ơn Martin Ender cho Đoạn trích bảng dẫn
for(a;b;c)d;
, sau khi tuyên bố kết thúc chu kỳ đầu tiên? Có hợp lệ để phá vỡ trong c
tuyên bố đầu tiên của tuyên bố?
a, b, d, c, b, d, c, ...
, b
là bắt đầu của chu kỳ và phải được chạy ít nhất lần thứ hai.