読者です 読者をやめる 読者になる 読者になる

コードゴルフもどき

先輩の学年の授業のプログラミングの課題を見せられてコードゴルフして遊んでいました。

問題の概要としては、

  1. 1以上999以下の数を一つ入力し、
  2. 1からその数までをそれぞれ13で割った余りの分布を例のような感じで表示する。

INPUT:

30

OUTPUT:

0:13,26
1:1,14,27
2:2,15,28
3:3,16,29
4:4,17,30
5:5,18
6:6,19
7:7,20
8:8,21
9:9,22
10:10,23
11:11,24
12:12,25

んで結局こうなりました。

i,p,x;main(){
 for(scanf("%d",&x);i<13&&printf("%d:",i);)
  for(p=i++;p<=x;p+=13)
   p&&printf("%d%c",p,p+12<x?44:10);
}

こんなもん短くしたからなんだと言った感じですが、楽しかったので。

正直ショートコーディングのテクニックって分からない・・・。

(ちなみに正規ルートだと二次元配列を使うらしいです。[恐らくこれが999以下の理由])