#第17回[Bitwise rotation]#
[問題]
入力された int 型の値に対し、ビット列を左シフト方向に回転させ、1周するまでその値を表示する
[入力 |例1]
8
[出力 |例1]
8\n
16\n
32\n
64\n
128\n
256\n
512\n
1024\n
2048\n
4096\n
8192\n
16384\n
32768\n
65536\n
131072\n
262144\n
524288\n
1048576\n
2097152\n
4194304\n
8388608\n
16777216\n
33554432\n
67108864\n
134217728\n
268435456\n
536870912\n
1073741824\n
-2147483648\n
1\n
2\n
4\n
8\n
[入力 |例2]
-1
[出力 |例2]
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
-1\n
[入力 |例3]
753124320
[出力 |例3]
753124320\n
1506248640\n
-1282470016\n
1730027265\n
-834912766\n
-1669825531\n
955316235\n
1910632470\n
-473702356\n
-947404711\n
-1894809421\n
505348455\n
1010696910\n
2021393820\n
-252179656\n
-504359311\n
-1008718621\n
-2017437241\n
260092815\n
520185630\n
1040371260\n
2080742520\n
-133482256\n
-266964511\n
-533929021\n
-1067858041\n
-2135716081\n
23535135\n
47070270\n
94140540\n
188281080\n
376562160\n
753124320\n
[期間]
1/29(土)22:00 ~ 2/ 5(土)21:59
[hr]
=結果=
投稿数12件(7人)
1位 (64B)
みけCAT さん
c=33;main(i){for(scanf("%d",&i);c--;i=i*2|i<0)printf("%d\n",i);}
nissy さん
n;main(a){for(scanf("%d",&a);n++<33;a=a<0|a*2)printf("%d\n",a);}
kimuchi さん
i;main(n){for(scanf("%d",&n);33-i++;n=n<0|n*2)printf("%d\n",n);}
*1位1番乗り
みけCAT さん
[hr]
★解説
今回のポイントは次の2つです。
*2 か左シフトか
Q3 では、2の累乗を得るために << 演算子を使いました。
今回も、問題文に左シフトと書いてあるので << 演算子を使いたくなるかもしれません。
しかし、n<<1 という演算からは、一番左のビットの情報を得ることができません。
int 型の値に対しては、オーバーフローを考慮しても、左シフトと *2 が等価に作用することを利用し、1位のコードの形にするのが最短でした。
なお、右シフトと /2 は互換ではありません。
比較式の結果は 0 か 1
比較式が真のときは 1、偽のときは 0 を返すことを利用しましょう。
Code Golf に興味が出てきたら、コミュニティ「Code Golf を楽しもう」まで!
初心者歓迎、参戦&観戦いつでもお待ちしています!
http://dixq.net/forum/viewforum.php?f=52
第18回の投稿受付中です。
[hr]
第17回 mixC++ Code Golf 結果報告
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
- 住所: 千葉
第17回 mixC++ Code Golf 結果報告
最後に編集したユーザー あーる@Reputeless on 2011年2月05日(土) 22:04 [ 編集 1 回目 ]
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
- 住所: 千葉
Re: 第17回 mixC++ Code Golf 結果報告
> roxion1377 さん
最近僕は main 再帰じゃないと1位になれない問題を作らないよう、苦心・・・してはいません(´ω`*
最近僕は main 再帰じゃないと1位になれない問題を作らないよう、苦心・・・してはいません(´ω`*
Re: 第17回 mixC++ Code Golf 結果報告
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
- 住所: 千葉
Re: 第17回 mixC++ Code Golf 結果報告
> 五反田さん
あー! printf の戻り値利用だ。
やられた /(^o^)\
あー! printf の戻り値利用だ。
やられた /(^o^)\