4
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
naka(PIC32MX) @naka_at_kure
@duo6750 上位ビットと下位ビットで分離するのは邪道でしょうか。
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
@naka_at_kure ピンポーン! その発想が瞬間的に出るか否かを調べる問題でした。 
西村備山 @lipoyang
@duo6750 x = (100*(1+100)) / 2; じゃダメですか?(笑)
naka(PIC32MX) @naka_at_kure
@duo6750 とりあえず思いついたのがこれしかなかったのでw 他の方法だと再帰で折り返すとか・・・?
西村備山 @lipoyang
@naka_at_kure @duo6750 C++ならテンプレートで黒魔術できますね。>再帰
naka(PIC32MX) @naka_at_kure
@lipoyang @duo6750 黒魔術の書物、難しすぎて全く理解しておりません・・・
𝕍𝕖𝕣𝕦𝕤🌒🐈🐾 @Verus
printf("%d\n", 1+2+...+100);で変数ゼロ!QT @duo6750: 「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
𝕍𝕖𝕣𝕦𝕤🌒🐈🐾 @Verus
スマートな方法を考えるのは楽しいけど,目的によってですよね!
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
@naka_at_kure @lipoyang 2つ目の正解は「自己呼出(再帰)」。 (STLとか<math.h>とか黒魔術を別として) 3つ目の正攻法は???
naka(PIC32MX) @naka_at_kure
@Yazee1120 再帰とかビットで分けるとか、あとはまぁprintfに1+2+・・・
西村備山 @lipoyang
ワロタ。まあ、さっきのは半分冗談としても、解析解が分かることを数値計算で求めるのはエレガントでないですね。 RT @aprikip printf( "5050\n" );
˂⁽ˈ₍ ⁾˲₎₌ふみ @fumieval
RT @duo6750: 「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
猫のお腹に顔をうずめて深呼吸 @crimsonwoods
int x;しか使えなくてもint == intptr_tな環境なら適当にallocateしたメモリ使えるからなぁ。
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
@Verus 実際にあった、もっとすごい答は、予め「暗算」して、printf("%d\n", 5050); とか、 printf("5050\n");  ( 「1個の変数はまともに使う」ってのが題意ですが、まあ答えがあってりゃOKか?)
𝕍𝕖𝕣𝕦𝕤🌒🐈🐾 @Verus
@duo6750 それをやるなら,思考を表現してprintf("%d\n", ((1+100)*100)/2);ぐらいしてあげたほうがいいんですかね…多分展開されちゃうだろうけど.
一色 @isk8086
x=100までの合計値;printf("%d",x); QT @duo6750: 「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
R. Suzuki @quolc
x=5050; print x; RT duo6750「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
狐代@例大祭B33ab @foxykodai
int x=100; cout << x*(x+1)/2 ;RT duo6750「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
ELD-R-ESH-2 @eldesh
なんで変数が必要なのか分からない RT @duo6750: 「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?
ohnishiakira @ohnishiakira
宣言済みのint型の変数x以外を使わずに1から100の和を求めろっていうやつ、普通に for(x=x-x; x<=100; x++) {} でいいのでは
まー⊿ @5f_s
@konyanku 2進数で計算するにしたってループ回すのに少なくとも1つ以上変数必要だし、100以外の汎用性を求めないんだったら5050を代入して終了だしな
imo @imo_chp
@duo6750 @naka_at_kure このやり方はC言語でできるんですか?
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
@imo_chp できますよ~。 unionが簡単ですが、ポインタ操作や、シフト演算と論理演算でも可能です。
残りを読む(141)

コメント

ちゅーん @its_out_of_tune 2012年3月26日
Prelude> sum [1..10] って呟いてる人居たから何かと思ったらこれかw
ナスカ-U-島流し-124|【C96】1日目(金)南“フ”-08a @Chiether 2012年3月26日
Σ100問題。 Cryoliteさん宛に書いたが何とかforだけで完結できないかと考えた結果。 for(x=1;x%1000<=100||!(x=x/1000);x+=x%1000*1000+1){} これでfor抜けた時に和が出てくる。
ナスカ-U-島流し-124|【C96】1日目(金)南“フ”-08a @Chiether 2012年3月26日
そうか。ビットを使えばもっと省スペースなのか。 すっかりビット演算忘れてたや。
ナスカ-U-島流し-124|【C96】1日目(金)南“フ”-08a @Chiether 2012年3月26日
いや。数値にするメリットはあるぞ。 for(x=ST;x%(int)pow(10,(int)log10(ED)+1)<=ED || !(x=x/pow(10,(int)log10(ED)+1)); x+=x%(int)pow(10,(int)log10(ED)+1)*pow(10,(int)log10(ED)+1)+1){}とすれば桁数増えても対応できる。 言い訳苦しいなぁwww
ナスカ-U-島流し-124|【C96】1日目(金)南“フ”-08a @Chiether 2012年3月26日
powだのlogだの使うのは、変数使ってるよーなモンだからダメだよなぁ。内部的に変数使ってるだろうし。 やはり可変には無理かなぁ。

注目の記事 - トゥギャッチ

ログインして広告を非表示にする
ログインして広告を非表示にする