{"id":35,"date":"2017-01-31T09:39:53","date_gmt":"2017-01-31T00:39:53","guid":{"rendered":"http:\/\/kpc2017.satoshis.jp\/?p=35"},"modified":"2021-09-23T17:27:41","modified_gmt":"2021-09-23T08:27:41","slug":"%e5%86%8d%e8%b5%b7%e5%91%bc%e3%81%b3%e5%87%ba%e3%81%97","status":"publish","type":"post","link":"https:\/\/kpc2017.satoshis.jp\/?p=35","title":{"rendered":"\u518d\u8d77\u547c\u3073\u51fa\u3057"},"content":{"rendered":"<p>\u968e\u4e57\u5024\u3092\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0 factorial.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\nint factorial(int n) \r\n{\r\n\tif (n &gt; 0)\r\n\t\treturn n * factorial(n - 1);\r\n\telse \r\n\t\treturn 1;\r\n}\r\n\r\nint main(void)\r\n{\r\n\tint x;\r\n\r\n\tprintf(&quot;\u6574\u6570\u3092\u5165\u529b\u305b\u3088\uff1a&quot;);\r\n\tscanf_s(&quot;%d&quot;, &amp;x);\r\n\tprintf(&quot;%d\u306e\u968e\u4e57\u306f%d\u3067\u3059\u3002\\n&quot;, x, factorial(x));\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>\u6700\u5927\u516c\u7d04\u6570\u3092\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0 euclid.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\nint gcd(int x, int y) \r\n{\r\n\tif (y == 0)\r\n\t\treturn x;\r\n\telse\r\n\t\treturn gcd(y, x % y);\r\n}\r\n\r\nint main(void)\r\n{\r\n\tint x, y;\r\n\tputs(&quot;\u4e8c\u3064\u306e\u6574\u6570\u306e\u6700\u5927\u516c\u7d04\u6570\u3092\u6c42\u3081\u307e\u3059\u3002&quot;);\r\n\tprintf(&quot;\u6574\u6570\u3092\u5165\u529b\u305b\u3088:&quot;);\r\n\tscanf_s(&quot;%d&quot;, &amp;x);\r\n\tprintf(&quot;\u6574\u6570\u3092\u5165\u529b\u305b\u3088:&quot;);\r\n\tscanf_s(&quot;%d&quot;, &amp;y);\r\n\tprintf(&quot;\u6700\u5927\u516c\u7d04\u6570\u306f%d\u3067\u3059\u3002\\n&quot;, gcd(x, y));\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>\u3072\u3068\u3064\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306b\u8907\u6570\u306emain\u95a2\u6570\u3092\u4f5c\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3002<\/p>\n<p>\u8907\u6570\u306e\u6a5f\u80fd\u3092\u6271\u3044\u305f\u3044\u5834\u5408\u306f\u3001\u524d\u306b\u30ea\u30b9\u30c8\u3084\u30cf\u30c3\u30b7\u30e5\u3067\u4f5c\u3063\u305f\u3082\u306e\u3068\u540c\u69d8\u306b\u3001\u30e1\u30cb\u30e5\u30fc\u3092\u4f5c\u3063\u3066\u547c\u3073\u5206\u3051\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<p>RecursiveTest.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &quot;recursive.h&quot;\r\n\r\ntypedef enum {\r\n\tTERMINATE, FACTORIAL, EUCLID\r\n} Menu;\r\n\r\nMenu SelectMenu(void)\r\n{\r\n\tint ch;\r\n\tdo {\r\n\t\tprintf(&quot;(1)\u968e\u4e57 (2)\u6700\u5927\u516c\u7d04\u6570 (0)\u7d42\u4e86&quot;);\r\n\t\tscanf_s(&quot;%d&quot;, &amp;ch);\r\n\t} while (ch &lt; TERMINATE || ch &gt; EUCLID);\r\n\treturn (Menu)ch;\r\n}\r\n\r\nint main(void)\r\n{\r\n\tMenu menu;\r\n\tdo {\r\n\t\tswitch (menu = SelectMenu()) {\r\n\t\tcase FACTORIAL:\r\n\t\t\tfmain();\r\n\t\t\tbreak;\r\n\t\tcase EUCLID:\r\n\t\t\temain();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t} while (menu != TERMINATE);\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>recursive.h<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#ifndef __RECURSIVE\r\n#define __RECURSIVE\r\n\r\nint fmain(void);\r\nint emain(void);\r\n\r\n#endif\r\n<\/pre>\n<p>factorial.c \u306e main() \u3092 fmain() \u306b\u5909\u66f4\u3057\u3001euclid.c \u306e main() \u3092 emain() \u306b\u5909\u66f4\u3059\u308b\u3002<\/p>\n<h4>\u30c6\u30ad\u30b9\u30c8\u306e\u6f14\u7fd2\u554f\u984c\u3092\u3084\u3063\u3066\u307f\u3088\u3046\uff01<\/h4>\n<p>\u30cd\u30c3\u30c8\u3067\u691c\u7d22\u3057\u3066\u3082OK\uff01<br \/>\n\u305f\u3060\u3057\u3001\u52d5\u4f5c\u3092\u304d\u3061\u3093\u3068\u81ea\u5206\u3067\u7406\u89e3\u3059\u308b\u3053\u3068\u3002<\/p>\n<blockquote><p>\u6f14\u7fd25-1<br \/>\n\u518d\u5e30\u95a2\u6570\u547c\u3073\u51fa\u3057\u3092\u7528\u3044\u305a\u306b\u3001\u95a2\u6570factorial\u3092\u5b9f\u73fe\u305b\u3088\u3002<\/p>\n<p>\u6f14\u7fd25-2<br \/>\n\u518d\u5e30\u95a2\u6570\u547c\u3073\u51fa\u3057\u3092\u7528\u3044\u305a\u306b\u3001\u95a2\u6570euclid\u3092\u5b9f\u73fe\u305b\u3088\u3002<\/p><\/blockquote>\n<p>\u4f5c\u6210\u6e08\u307f\u306e\u518d\u5e30\u547c\u3073\u51fa\u3057\u95a2\u6570\u306f\u3001\u95a2\u6570\u540d\u306e\u6700\u5f8c\u306b _r \u3092\u3064\u3051\u3066\u30a8\u30e9\u30fc\u56de\u907f\u3059\u308b\u3002<br \/>\nfactorial() \u2192 factorial_r()<br \/>\neuclid() \u2192 euclid_r()<\/p>\n<p>\u6f14\u7fd25-1\u89e3\u7b54\u4f8b<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint factorial(int n)\r\n{\r\n\tint i;\r\n\tint result = 1;\r\n\tfor (i = 1; i &lt;= n; i++) {\r\n\t\tresult = result * i;\r\n\t}\r\n\treturn result;\r\n}\r\n<\/pre>\n<p>\u6f14\u7fd25-2\u89e3\u7b54\u4f8b<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint gcd(int x, int y)\r\n{\r\n\tint v = (x &lt; y) ? x : y;\r\n\tint i;\r\n\r\n\tfor (i = v; i &gt; 0; i--) {\r\n\t\t\/\/printf(&quot;x=%d y=%d v=%d xv=%d yv=%d\\n&quot;, x, y, i, x % i, y % i);\r\n\t\tif ((x % i == 0) &amp;&amp; (y % i == 0)) {\r\n\t\t\treturn i;\r\n\t\t}\r\n\t}\r\n\treturn 1;\r\n}<\/pre>\n<p>\u518d\u5e30\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u89e3\u6790<br \/>\nRecursiveTest.c\u306b\u8ffd\u52a0<\/p>\n<pre class=\"brush: cpp; highlight: [5,12,14,29,30,31]; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &quot;recursive.h&quot;\r\n\r\ntypedef enum {\r\n\tTERMINATE, FACTORIAL, EUCLID, ANALYZE\r\n} Menu;\r\n\r\nMenu SelectMenu(void)\r\n{\r\n\tint ch;\r\n\tdo {\r\n\t\tprintf(&quot;(1)\u968e\u4e57 (2)\u6700\u5927\u516c\u7d04\u6570 (3)\u89e3\u6790 (0)\u7d42\u4e86 : &quot;);\r\n\t\tscanf_s(&quot;%d&quot;, &amp;ch);\r\n\t} while (ch &lt; TERMINATE || ch &gt; ANALYZE);\r\n\treturn (Menu)ch;\r\n}\r\n\r\nint main(void)\r\n{\r\n\tMenu menu;\r\n\tdo {\r\n\t\tswitch (menu = SelectMenu()) {\r\n\t\tcase FACTORIAL:\r\n\t\t\tfmain();\r\n\t\t\tbreak;\r\n\t\tcase EUCLID:\r\n\t\t\temain();\r\n\t\t\tbreak;\r\n\t\tcase ANALYZE:\r\n\t\t\tamain();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t} while (menu != TERMINATE);\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>recur.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\nvoid recur(int n)\r\n{\r\n\tif (n &gt; 0) {\r\n\t\trecur(n - 1);\r\n\t\tprintf(&quot;%d\\n&quot;, n);\r\n\t\trecur(n - 2);\r\n\t}\r\n}\r\n\r\nint amain(void)\r\n{\r\n\tint x;\r\n\tprintf(&quot;\u6574\u6570\u3092\u5165\u529b\u305b\u3088: &quot;);\r\n\tscanf(&quot;%d&quot;, &amp;x);\r\n\trecur(x);\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>recursive.h<\/p>\n<pre class=\"brush: cpp; highlight: [6]; title: ; notranslate\" title=\"\">\r\n#ifndef __RECURSIVE\r\n#define __RECURSIVE\r\n\r\nint fmain(void);\r\nint emain(void);\r\nint amain(void);\r\n\r\n#endif\r\n<\/pre>\n<p>\u30cf\u30ce\u30a4\u306e\u5854<br \/>\nhanoi.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\nvoid move(int no, int x, int y) \r\n{\r\n\tif (no &gt; 1)\r\n\t\tmove(no - 1, x, 6 - x - y);\r\n\tprintf(&quot;\u5186\u76e4[%d]\u3092%d\u8ef8\u304b\u3089%d\u8ef8\u3078\u79fb\u52d5\\n&quot;, no, x, y);\r\n\tif (no &gt; 1)\r\n\t\tmove(no - 1, 6 - x - y, y);\r\n}\r\n\r\nint hmain(void) \r\n{\r\n\tint n;\r\n\tprintf(&quot;\u30cf\u30ce\u30a4\u306e\u5854\\n\u5186\u76e4\u306e\u679a\u6570: &quot;);\r\n\tscanf(&quot;%d&quot;, &amp;n);\r\n\tmove(n, 1, 3);\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>RecursiveTest.c<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &quot;recursive.h&quot;\r\n\r\ntypedef enum {\r\n\tTERMINATE, FACTORIAL, EUCLID, ANALYZE, HANOI\r\n} Menu;\r\n\r\nMenu SelectMenu(void)\r\n{\r\n\tint ch;\r\n\tdo {\r\n\t\tprintf(&quot;(1)\u968e\u4e57 (2)\u6700\u5927\u516c\u7d04\u6570 (3)\u89e3\u6790 (4)\u30cf\u30ce\u30a4\u306e\u5854 (0)\u7d42\u4e86 : &quot;);\r\n\t\tscanf_s(&quot;%d&quot;, &amp;ch);\r\n\t} while (ch &lt; TERMINATE || ch &gt; HANOI);\r\n\treturn (Menu)ch;\r\n}\r\n\r\nint main(void)\r\n{\r\n\tMenu menu;\r\n\tdo {\r\n\t\tswitch (menu = SelectMenu()) {\r\n\t\tcase FACTORIAL:\r\n\t\t\tfmain();\r\n\t\t\tbreak;\r\n\t\tcase EUCLID:\r\n\t\t\temain();\r\n\t\t\tbreak;\r\n\t\tcase ANALYZE:\r\n\t\t\tamain();\r\n\t\t\tbreak;\r\n\t\tcase HANOI:\r\n\t\t\thmain();\r\n\t\t\tbreak;\r\n\t\t}\r\n\t} while (menu != TERMINATE);\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>recursive.h<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#ifndef __RECURSIVE\r\n#define __RECURSIVE\r\n\r\nint fmain(void);\r\nint emain(void);\r\nint amain(void);\r\nint hmain(void);\r\n\r\n#endif\r\n<\/pre>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>\u968e\u4e57\u5024\u3092\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0 factorial.c \u6700\u5927\u516c\u7d04\u6570\u3092\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0 euclid.c \u3072\u3068\u3064\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306b\u8907\u6570\u306emain\u95a2\u6570\u3092\u4f5c\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3002 \u8907\u6570\u306e\u6a5f\u80fd\u3092\u6271\u3044\u305f\u3044\u5834\u5408\u306f\u3001\u524d\u306b\u30ea\u30b9\u30c8\u3084\u30cf\u30c3\u30b7\u30e5\u3067\u4f5c\u3063\u305f &hellip; <a href=\"https:\/\/kpc2017.satoshis.jp\/?p=35\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;\u518d\u8d77\u547c\u3073\u51fa\u3057&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[4],"_links":{"self":[{"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/35"}],"collection":[{"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":10,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions\/45"}],"wp:attachment":[{"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kpc2017.satoshis.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}