トップ «前の日記(2014-08-12(Tue)) 最新 次の日記(2014-08-20(Wed))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-08-17(Sun) 晴れで雨で

ちょっとだけインテリジェントかもしれないがやっぱりお馬鹿なfizzbuzz

1からfizzbuzz, 16から次のfizzbuzz、と区分するようにする。

#!/usr/bin/env python
from sys import argv
 
try:
  last = int(argv[1])
except:
  print "No last number"
  exit(2)
 
last = last + 1
fool_str = ''
 
def fizzbuzz(str):
  print_str = ' printf("' + str + '");'
  print print_str     
  return ''
  
print '#include<stdio.h>\nint main()\n{'
 
for x in range(1,last):
    if not (x % 15):
      fool_str = fool_str + 'fizzbuzz\\n'
    elif not (x % 5):
      fool_str = fool_str + 'buzz\\n'
    elif not (x % 3):
      fool_str = fool_str + 'fizz\\n'
    else:
      fool_str = fool_str + str(x) + '\\n'
    if (len(fool_str.split('\\n')) == 16) \
        or (x == (last - 1)):
      fool_str = fizzbuzz(fool_str)
 
print ' return 0;\n}'

拙速で汚いが、なんとか、

$ python inte.py 18
#include<stdio.h>
int main()
{
	printf("1\n2\nfizz\n4\nbuzz\nfizz\n7\n8\nfizz\n\
buzz\n11\nfizz\n13\n14\nfizzbuzz\n");
	printf("16\n17\nfizz\n");
	return 0;
}

のようになった。
ファイルサイズも 以前より幾分小さくなったはずだ。

$ ls -l 1*0.c 
-rw-rw-r-- 1 user group      218  8月 17 00:35 10.c
-rw-rw-r-- 1 user group     1856  8月 16 10:03 100.c
-rw-rw-r-- 1 user group    18716  8月 16 10:03 1000.c
-rw-rw-r-- 1 user group   192116  8月 16 10:03 10000.c
-rw-rw-r-- 1 user group  1974116  8月 16 10:03 100000.c
-rw-rw-r-- 1 user group 20274116  8月 16 10:03 1000000.c
 
$ ls -l i1*.c
-rw-rw-r-- 1 user group     102  8月 17 00:35 i10.c
-rw-rw-r-- 1 user group     648  8月 17 00:35 i100.c
-rw-rw-r-- 1 user group    6588  8月 17 00:36 i1000.c
-rw-rw-r-- 1 user group   70788  8月 17 00:36 i10000.c
-rw-rw-r-- 1 user group  760788  8月 17 00:36 i100000.c
-rw-rw-r-- 1 user group 8140788  8月 17 00:18 i1000000.c
$ ls -l 1*0 
-rwxrwxr-x 1 user group     8374  8月 16 10:09 10
-rwxrwxr-x 1 user group     8375  8月 16 10:09 100
-rwxrwxr-x 1 user group    20664  8月 16 10:09 1000
-rwxrwxr-x 1 user group   135353  8月 16 10:09 10000
-rwxrwxr-x 1 user group  1323194  8月 16 10:09 100000
-rwxrwxr-x 1 user group 13680827  8月 16 10:10 1000000
 
$ ls -l i1*0
-rwxrwxr-x 1 user group    8375  8月 17 00:38 i10
-rwxrwxr-x 1 user group    8376  8月 17 00:38 i100
-rwxrwxr-x 1 user group   12473  8月 17 00:38 i1000
-rwxrwxr-x 1 user group   69818  8月 17 00:38 i10000
-rwxrwxr-x 1 user group  655547  8月 17 00:38 i100000
-rwxrwxr-x 1 user group 7016636  8月 17 00:38 i1000000

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。