整数の和を限定された変数だけで計算

1 から 100 までの整数の和を 16 ビットの, または 10,000 までの和を 32 ビットの変数だけで計算する方法に関するツイートを纏めました.
1
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750

「1から100までの和を表示するプログラムを作れ」という問題を鼻で笑う諸君、「但し変数は宣言済の int x 以外は使わないこと」 という条件を付けても鼻で笑っていられるかな?

2012-03-25 18:00:43
@iwase_zjunici

@duo6750 for(x=1;x%1000<100;x+=1)x+=x%1000*1000; printf("%d\n", x/1000); はどうかな? int 型が 16ビットだとダメ。

2012-03-25 22:21:29
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750

【1から100までの和を1つの変数のみで求める問題】  サンプルプログラムを作ってみた。但し、今んとこC言語のみ。 \^o^/  http://t.co/aRdheXLV

2012-03-26 19:01:20
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

http://t.co/9dwjwsxZ を参考に, #perl -le 'use integer; $x+=$x%128*128+1 while $x%128<=100; print $x/128;'

2012-03-26 22:54:48
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

#perl -le 'use integer; $x+=($x+1)%10*10+1 while ($x+1)%10; $x/=10; print $x=100*$x+10*$x+100;' # 16 ビット (65536 未満) :-þ @shz_fsmy

2012-03-27 23:29:46
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

@shz_fsmy #ruby -e'x=0; x+=(x+1)%10*10+1 while (x+1)%10>0; x/=10; puts x=100*x+10*x+100;'

2012-03-28 13:23:52
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

@shz_fsmy #ruby -e'x=0; x+=(x+1)%10*10+1 while (x+1)%10>0; x-=9; x+=(x+1)%10*1000+1 while (x+1)%10>0; x/=10; x-=x%100-x%100*10; puts x+100;'

2012-03-28 13:29:26
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

@iwase_zjunici @duo6750 0,1,...,9 に 4 ビット, 0+1+...+9 に 6 ビット, 0+10+...+90 に 6 ビット. cf. http://t.co/WRx9B71P

2012-03-28 14:25:06
襖屋石蔵 Ishizo FUSUMAYA @shz_fsmy

「1 から 10,000 までの整数の和を求めるアルゴリズムを書け. ただし, 変数は 32 ビットの符号付き整数 x しか使わないこと」という問題を鼻で笑えるかな. cf. http://t.co/s5hxIlKi

2012-03-29 20:31:08