Yumomo-Rの日記: Fizz-Buzz問題
日記 by
Yumomo-R
if文と剰余演算子、あとitoa()関数を使わずにループ内を1行にできないか悪戦苦闘した結果を残しておきます。
#include <stdio.h>
int main(void);
int main(void)
{
int i;
for (i = 1; i < 101; i++)
printf("%c%c%c%c%c%c%c%c\n",
(((i / 15) * 15) == i ? 'F' :
(((i / 3) * 3) == i ? 'F' :
(((i / 5) * 5) == i ? 'B' :
(i / 100) != 0 ? ('0' + (i / 100)) : '\0'
)
)
),
(((i / 15) * 15) == i ? 'i' :
(((i / 3) * 3) == i ? 'i' :
(((i / 5) * 5) == i ? 'u' :
((i / 10) - ((i / 100) * 10)) != 0 ? ('0' + ((i / 10) - ((i / 100) * 10))) : '\0'
)
)
),
(((i / 15) * 15) == i ? 'z' :
(((i / 3) * 3) == i ? 'z' :
(((i / 5) * 5) == i ? 'z' :
('0' + (i - ((i / 10) * 10)))
)
)
),
(((i / 15) * 15) == i ? 'z' :
(((i / 3) * 3) == i ? 'z' :
(((i / 5) * 5) == i ? 'z' :
'\0'
)
)
),
(((i / 15) * 15) == i ? 'B' : '\0'),
(((i / 15) * 15) == i ? 'u' : '\0'),
(((i / 15) * 15) == i ? 'z' : '\0'),
(((i / 15) * 15) == i ? 'z' : '\0')
);
return;
}
……いやもう、「三項演算子の条件式はもっと整理できるはず」とか、そういうツッコミは勘弁してください…… orz
#include <stdio.h>
int main(void);
int main(void)
{
int i;
for (i = 1; i < 101; i++)
printf("%c%c%c%c%c%c%c%c\n",
(((i / 15) * 15) == i ? 'F' :
(((i / 3) * 3) == i ? 'F' :
(((i / 5) * 5) == i ? 'B' :
(i / 100) != 0 ? ('0' + (i / 100)) : '\0'
)
)
),
(((i / 15) * 15) == i ? 'i' :
(((i / 3) * 3) == i ? 'i' :
(((i / 5) * 5) == i ? 'u' :
((i / 10) - ((i / 100) * 10)) != 0 ? ('0' + ((i / 10) - ((i / 100) * 10))) : '\0'
)
)
),
(((i / 15) * 15) == i ? 'z' :
(((i / 3) * 3) == i ? 'z' :
(((i / 5) * 5) == i ? 'z' :
('0' + (i - ((i / 10) * 10)))
)
)
),
(((i / 15) * 15) == i ? 'z' :
(((i / 3) * 3) == i ? 'z' :
(((i / 5) * 5) == i ? 'z' :
'\0'
)
)
),
(((i / 15) * 15) == i ? 'B' : '\0'),
(((i / 15) * 15) == i ? 'u' : '\0'),
(((i / 15) * 15) == i ? 'z' : '\0'),
(((i / 15) * 15) == i ? 'z' : '\0')
);
return;
}
……いやもう、「三項演算子の条件式はもっと整理できるはず」とか、そういうツッコミは勘弁してください…… orz
Fizz-Buzz問題 More ログイン