「BUZZ」を含む日記 RSS

はてなキーワード: BUZZとは

2008-10-26

main(i){ 
  for(;i<101;puts(i++%5?"":"Buzz")) 
  printf(i%3?i%5?"%d":"":"Fizz",i); 
}

CのFizzBuzzはこれが一番好き。

http://anond.hatelabo.jp/20081025235847

function はなしにできるけど、可読性のためにあったほうがいい。

私なら内部関数にしてでも切り離す。

if なしは以下でできるけど、これは if でやっても変わらないのでは。

text = (counter % 3 ? "" : "Fizz") + (counter % 5 ? "" : "Buzz");

for なしはわからん。

どうやるの?

2008-10-25

http://anond.hatelabo.jp/20081025202001

javascript ではこうか、こうでいいのか?

window.onload = function() {

  for(var ix = 0; ix < 100; ix++) {
    var p = document.createElement("p");
    var text = ix + " : " + fizzBuzz(ix);
    var textNode = document.createTextNode(text);

    p.appendChild(textNode);
    document.body.appendChild(p);
  }
};

function fizzBuzz(counter) {

  var text = "";
  if(!(counter % 3))
    text += "Fizz";
  if(!(counter % 5))
    text += "Buzz";

  return text;
}

http://anond.hatelabo.jp/20081025231830

さっきのはあまりに汚かったのでちゃんと書いたよ!!

static int do_fizz_buzz(int num, int rem, const char* str, int print) {
  if (num % rem == 0) {
    return do_fizz_buzz(num / rem, rem, str, 1);
  }
  if (print)
    printf("%s", str);
  return num;
}
int fizz_buzz(int num, int rem, const char* str) {
  return do_fizz_buzz(num, rem, str, 0);
}
int main(){
  int i;
  for(i=1; i<=100; i++){
    if(fizz_buzz(fizz_buzz(i, 3, "Fizz"), 5, "Buzz") != i)
      printf("\n");
    else
      printf("%d\n", i);
  }
  return 0;
}

どうでしょうか?>元増田

http://anond.hatelabo.jp/20081025230447

じゃぁ再帰で。

int fizz_buzz(int i, int j) {
  if(i % 3 == 0 &amp;&amp; j % 3 != 0) {
    printf("Fizz");
    return 1+ fizz_buzz(i / 3, j * 3);
  }
  if(i % 5 == 0 &amp;&amp; j % 5 != 0) {
    printf("Buzz");
    return 1 + fizz_buzz(i / 5, j * 5);
  }
  return 0;
}

int main(){
  int i;
  for(i=1; i<=100; i++){
    if(fizz_buzz(i, 1))
      printf("\n");
    else
      printf("%d\n", i);
  }
  return 0;
}

変数適当なのは勘弁。3とか5は適当に定数かマクロで置換すればDRY?

散々考え尽くされているんだろうけど、俺は挑戦するの初めてなので結構楽しいw

anond:20081025224505

全然DRYじゃないけど、

#include <stdio.h>
#define FIZZ 3
#define BUZZ 5

int main(void){
  int i;

  for(i=1; i<=100; i++){
    if((i % FIZZ == 0) || (i % BUZZ == 0)){
      if(i % FIZZ == 0)
        printf("Fizz");
      if(i % BUZZ == 0)
        printf("Buzz");
      printf("\n");
    }
    else
      printf("%d\n", i);
  }
  return 0;
}

で簡単な仕様変更には対処できるかと。

でも一度ですむものは一度ですませたいよねぇ。もうちょっと考えてみる。

http://anond.hatelabo.jp/20081025224505

#include <stdio.h>

int main(){
  int i, j = 0;

  for(i=1; i<=100; j = 0, i++){
    if(i % 3 == 0) {
      printf("Fizz"); j = 1;
    }
    if(i % 5 == 0) {
      printf("Buzz"); j = 1;
    }
    if (j) {
      printf("\n");
      continue;
    }
    /* 以下二行と返り値追記 */
    else
      printf("%d\n", i);
  }
  return 0;
}

DRYかなと思うが、早くなるかは微妙ね。

http://anond.hatelabo.jp/20081025212915

すばらしい指摘すぎて全俺が泣いた

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

だから数字出さないとね。

プログラマになれません

私は今某社でWebアプリ開発の補助をするアルバイトをしている。一応少しはコードを書く。でも、自分はプログラマじゃないな、と思う。素敵なアルゴリズムを考えたりもしない。アプリの設計は当然社員さんがやる。私がやることと言えば、機能追加のための簡単なコードを書いたり、簡単なWebアプリフレームワーク勉強しつつ書いて、見た目をCSSで整えて、そんなことだ。

やりがいを感じないわけではない。やっぱり自分の書いたコードが上手く動けば嬉しい。でも、プログラマの壁を読むと、何となく自分はコーダーになれてもプログラマにはなれないような気がしてくる。一応FizzBuzzは解ける。以下、そのコード。※追記参照

#include <stdio.h>

int main(void){
  int i;

  for(i=1; i<=100; i++){
    if((i % 3 == 0) || (i % 5 == 0)){
      if(i % 3 == 0)
        printf("Fizz");
      if(i % 5 == 0)
        printf("Buzz");
      printf("\n");
    }
    /* 以下二行と返り値追記 */
    else
      printf("%d\n", i);
  }
  return 0;
}

アルゴリズム自体は多分2分足らずでもやっと思いつき、書いてる途中で脳内もやっとを形にできた。でもCの文法を忘れていて、コンパイルを通すのに独習Cを調べつつ、5分くらいかかった。

その時に、(i mod 3 = 0)とか書いてて、なんか自分はやっぱりダメなんじゃという気にさせられた。代入と比較の区別がついてない。そういえば先日も、編集してるファイルが違ってたとかカンマをつけ忘れてたとかでエラーがでてるのに、それになかなか気がつかなかったり、if文の条件が成立する場合としない場合を逆に考えてしまったりと、そんなぼんくらミスばかりしている。

そんなときに、「ああ、自分ってプログラマ向いてないのかも」と感じさせられる。

そしてなにより自分がプログラマに向いていないと思うのは、知的探求心の問題だ。プログラマを志していたがその道を諦めた友人に、なぜプログラミング勉強をやめたのか?と聞いたとき、彼から帰ってきた答えはこうだった。「この道に進んだら一生勉強しなきゃいけないから。自分にはそんなことはとても無理だと思った」この答えを聞いたとき、でもプログラミング勉強だったら楽しくないのかな?と思った。しかし自分を省みたとき、私自身もそう熱心にプログラミング勉強をしているわけではないことに気がついた。Macに入っている一通りの言語でとりあえずHello!World!を書いたりしたが、だからといってそれらの言語の得手不得手がはっきりわかるまで勉強したわけではない。文法だって忘れてしまった。アルゴリズムを熱心に勉強したことはないし、なにより自分は最も唾棄すべき「とりあえず動けばいい」と思っている人間だ。エラーがでてそれを直しプログラムが動いたとき、なぜそのエラーが出なくなったのか?なぜ動くようになったのか?そうしたことを納得がいくまで調べることは滅多にない。なんとなく、ああいう理由なのかな?と考えて、それだけですませてしまう。もう一度書くが、自分が書いたプログラムが思った通りに動いたときは楽しい。でも、そこで止まってしまうのだ。なぜ動いたのか?それを徹底して考え、理解してはいない。

今のバイト先の開発チーフには、いつもこの点を注意される。なぜそれでいいのか徹底的に考えろ、ドキュメントをちゃんと読め、関数の挙動がわからなかったらソースを読め、と。でも正直、動いてくれたらそれでいい。さすがにライブラリドキュメントを読む癖は多少ついてきたが、けれどもそのソースを読むところまでは正直頭が、気持ちが回らない。

だから、自分はプログラマになれないと思う。いつまでたってもコーダーのままだろう。

プログラミングはとても特別な才能がいる仕事だと思う。それは、アルゴリズムデータ構造オブジェクト指向などといった抽象的なものごとを理解し、それを具体的なソースコードに落とす頭だけではなく、ものごとについてとことん考える知的探求心も必要だ。その二つを満たす人こそがプログラマなのだと、一コーダーなりに私は思う。

だから私は、プログラマになれません。

【追記】

さすがに仕様を満たしていないのは恥ずかしいので直しました。こういう間抜けなミスをするところがなぁ…orz

mainについて熱くなっている方々の話にはいまいちついていけないのですが、私はこれをCで書いたつもりですし、戻り値がないことにも警告はありませんでした。コンパイラgcc version 4.0.1 (Apple Inc. build 5465)です。

2008-07-17

  1. 好みの近いはてなブックマーカーを探そう
  1. はてブおせっかい
  2. はてなブックマーカー御用達ツールまとめ :: Love & Design ::
  3. はてブお気に入りサジェスタ
  4. はてなブックマーク - じわじわ来てるエントリー
  1. Kikker - 学習するユーザーカスタマイズドなニュースサイト-
  2. Hatebu Addiction
  3. Hatebu Filtr
  4. Zer0Reader
  5. MixClips ソーシャルブックマーク横断サイト
  6. はてブDays
  7. 「最近の人気エントリー」以外のはてブ人気エントリーを使ってみよう - 聴く耳を持たない(片方しか)
  8. はてブニュース
  9. はてブ検索
  10. HatebuFriends
  11. 真のアルファブックマーカーは誰だ!『はてブ経験値』
  1. Kikker - 学習するユーザーカスタマイズドなニュースサイト
  2. はてぶリーダー
  3. My はてなブックマークランキング
  4. はてなブックマーク関連ツールまとめ - 聴く耳を持たない(片方しか)
  5. はてなブックマーク 今日のおすすめ
  6. はてブリーダー君
  7. Hatebusa -Hatena Bookmark Search-
  8. HatenaTagCluster
  9. suVeneのあれ: [はてブ]お気に入りからお気に入りを探そうサービス
  10. SBM統合サービス(β版)
  11. ソーシャルブックマークリンク集
  12. Qooqle News
  13. Buzz Japan!(バズジャパン!) - ソーシャルブックマーク・ニュースまとめサイト
  14. はてぶトップ - ネットの歴史が、また1ページ
  15. はてなブックマーカーなら当然知ってる25個の技をわざわざ書いてみた - 記憶する部屋 - はてブクロニクル
  16. Alpha Clipper Clips(はてなブックマーク超注目リスト):トップページ
  17. MixClips ソーシャルブックマーク横断サイト
  18. はてブカレンダー2005
  19. はてブコメント最新情報
  20. 第2弾!はてなブックマーカー御用達ツールまとめ :: Love & Design ::
  21. Yahoo!検索 はてブ順
  22. Hatebladder2 - はてなブックマークビューア

2008-03-07

http://anond.hatelabo.jp/20080307155244

これならどうかな。

while(++$i) {print ['Fizz', 'Buzz', 'Fizz Buzz', "$i"]->[rand 4]."\n"}

FizzBuzz

while(++$i){
  print "Fizz " if rand 2>1;
  print "Buzz" if rand 2>1;
  print $i if rand 2>1;
  print "\n";
}# pray while run.

これ以上ダメアルゴリズムはあるま…いや、あるかもしれんな…

2008-03-05

http://anond.hatelabo.jp/20080305093857

はてなbのbはbuzzのbee!

群がるハエにまぎれるとまだ新鮮な死体にありつける。

どうでもいいけど、404とか、ホームページを作る人のとか、

毎回ブックマークする人はなんなんだろう。

ホットエントリーにでてくるのを見るとそんなに毎回ブックマークするんだったら、

巡回先にでもいれておけよと思う。

コメントがつけたいだけ?

1getc⌒っ*゜д゜)っ ズサー 心理?

2007-12-19

[][]翻訳・翻案

22 Resources to Easily Create CSS Layouts | Vandelay Website Design December 17th, 2007

CSSのレイアウト作成に役立つ便利なリソースいろいろ - GIGAZINE 2007年12月18日 14時28分00秒

--------------------------------------------------------------------------------------------------------------

愚直なまでも著作権 > 著作権侵害が懲役10年以下になる意味 : ITmedia オルタナティブ・ブログ

著作権法 - 10年以下の懲役若しくは1000万円以下の罰金に処し、又はこれを併科する。 

公訴時効 - 長期15年未満の懲役又は禁錮に当たる罪については7年

見出しの無断配信は不法行為、知財高裁が読売新聞の訴えを一部認める判決

StarChartLog - 無断翻訳は著作権法違反の幇助ではなく正犯のはずなんだが

第二十七条 翻訳権、翻案権等

著作権法ガイド  文章を無料で引用できる基準を説明

フリーライダー - Wikipedia

Yahoo!辞書 - ひょう‐せつ【剽窃】

他人の作品や論文を盗んで、自分のものとして発表すること。

剽窃、世界大学では通じない - 米国の大学では剽窃事実が成績表に残る

作曲において、「剽窃」「盗作」とみなされることは不名誉なことだ。

盗作の境界はどこ「科学史から消された女性たち」事件 [ EP: 科学に佇む心と身体 ]

--------------------------------------------------------------------------------------------------------------

popurls® | popular urls to the latest web buzz

del.icio.us

Digg / All News, Videos, & Images

GIGAZINE

--------------------------------------------------------------------------------------------------------------

2007-12-06

buzzの仕込み?

DS陰山メソッド 正しい漢字かきとりくん 今度は漢検対策だよ!

http://www.amazon.co.jp/%E5%B0%8F%E5%AD%A6%E9%A4%A8-13306371-DS%E9%99%B0%E5%B1%B1%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E6%AD%A3%E3%81%97%E3%81%84%E6%BC%A2%E5%AD%97%E3%81%8B%E3%81%8D%E3%81%A8%E3%82%8A%E3%81%8F%E3%82%93-%E4%BB%8A%E5%BA%A6%E3%81%AF%E6%BC%A2%E6%A4%9C%E5%AF%BE%E7%AD%96%E3%81%A0%E3%82%88/dp/B000XCPSFW/ref=pd_ts_vg_29?ie=UTF8&s=videogames

子供用にちょっと調べていたら、なんか感想が変。

二人とも書いてあることが全く同じ。

http://www.amazon.co.jp/gp/cdp/member-reviews/A1FHY0Q2KXS7IF/ref=cm_pdp_reviews_see_all?ie=UTF8&sort%5Fby=MostRecentReview

http://www.amazon.co.jp/gp/cdp/member-reviews/A3T0EF8C70G6P/ref=cm_pdp_reviews_see_all?ie=UTF8&sort%5Fby=MostRecentReview

日付も一緒だし、こういうのってよくあるのかね?

・たまにこういった製品を買う場合、amazon以外のレビューを見ることがない

・じじばばがクリスマスプレゼントとして買う

あたりを考慮するととても効果的なプロモーションだねぇ。

幼稚園年長とか小学校1年生とか書いてあるあたりで信用しちゃうね。

2007-11-16

マスコミが隠す世界タブー - メディアが隠す世界タブー

明らかとなっている陰謀 陰謀論 - Wikipedia

プロパガンダ - Wikipedia

情報操作 - Wikipedia

2ch検索: [タブー]

tabooinmedia2ch@Wiki - トップページ

POP辞書 -

popurls® | popular urls to the latest web buzz

はてブニュース CEEK.JP NEWS - 最新ニュースヘッドライン CEEK.JP - 統合型メタサーチエンジン

はてなブックマーク - ソーシャルブックマーク

http://www2.2ch.net/2ch.html

http://dailynews.yahoo.co.jp/fc/

「ポスト噂の真相」

デジタル紙の爆弾 kamibaku.com

電子書店パピレス - 噂の真相

鹿砦社のホームページです。

BUBKA堂 -ブブカ公式ページ-

週刊金曜日:

ESPIO

古川利明の同時代ウォッチング

ゴーヤンのぼやき日記

暗いニュースリンク

きっこのブログ さるさる日記 - きっこの日記

情報紙「ストレイ・ドッグ」(山岡俊介取材メモ)

サイバッチ!

nikaidou.com

論壇 - 目安箱

アクセスジャーナル - News & Features

日刊ベリタ

天漢日乗 

さるさる日記 - 佐藤立志のマスコミ日記

去りにし日々、今ひとたびの幻

田中宇の国際ニュース解説

日本国研究

Stratfor - Geopolitical intelligence, economic, political, and military strategic forecasting | Stratfor

Spinwatch

Spin of the Day | Center for Media and Democracy

Human Rights Watch - Defending Human Rights Worldwide

Amnesty International | Working to Protect Human Rights AMNESTY INTERNATIONAL JAPAN

Electronic Frontier Foundation | Defending Freedom in the Digital World

BBC - Homepage

Welcome to the CIA Web Site — Central Intelligence Agency

VOA News - VOA News - Voice of America Homepage - News in 45 Languages

/// APF NEWS.com ///

外務省 海外安全ホームページ

DemocracyNow! Japan Democracy Now! | Radio and TV News

drudgereport ドラッジ・レポート

 benjaminfulford.com

分裂勘違い君劇場

池田信夫 blog

404 Blog Not Found

isologue - by 磯崎哲也事務所

TOSHINAO SASAKI MENU(??????X????r??????掮Å??F??u)

元検弁護士のつぶやき

情報流通促進計画 by ヤメ記者弁護士(ヤメ蚊)

2007-10-24

初音ミクBuzz Out Loud from CNETで紹介されてた

先週のBuzz Out Loud from CNETを聴いてたら初音ミクが紹介されてた

日本人の投稿を取り上げる形で「タイムリミット」も流れた

28分20秒くらいから

http://podcast-files.cnet.com/podcast/cnet_buzzoutloud_101807.mp3

2007-08-08

http://anond.hatelabo.jp/20070808134415

プログラミングなんて誰にでもできる」という思想は、案外広く信じられているようで、とくに「そこそこできる」人にそういう傾向があるように思う。もちろんそんなのは嘘っぱちだ。

例えば、100m走で走りきれないという人は、まぁそうそういないだろうけど、オリンピック金メダルをとれるかというと、いやずーっとレベルを下げて運動会の100m走で一位の旗を誇らしげに持てるかというと、それだって無理な人には無理だ。それと同じ意味プログラミングは誰にでもできることではない。

もちろんプログラミングで一位になる必要なんてどこにもない。だけど考えて欲しい。100m走では1位とビリの差は数秒もない。オリンピックレコードと二十代平均の記録を比べても、多分倍半分も違わないだろう。もしプログラミングの世界にもこれが適用されるなら世の中はもっと幸せになっているはずだ。

たとえ話が何か違う方向に行ってる気がするんだけど、気のせいだろうか…。

ぶっちゃけ言うと、意味が分かりにくい。

思うに、そこそこ出来る人に案外広く信じられている「プログラミングなんて誰にでもできる」を敢えて100m走に置換するならば、「100mなんて誰でも走れる」になるのでは?20秒とかそんな条件はない。

もちろん、「誰にでも..」は何に於いても嘘っぱちだ。身体的条件その他諸々により、「特別な事情がある場合を除き」みたいなprefixは必ず付く。

では100m走とプログラミング根本的な違いは何か?

100mという距離は別にしても、「走る」というのは人間の基本行動であり、特別な訓練を受けなくても"ほぼ誰にでも"できる事だろう。特別な事情がある場合を除いて。

対してプログラミングの方はというと、知らない人は知らないし、出来ない。当たり前だ。

というか、足し算だって何だってそうだ。

プログラミングは(普通)PCが必要だったりして、ちょっと入門の敷居が高いだけで。

つまり?そこそこ出来る人に案外広く信じられている「プログラミングなんて誰にでもできる」は、「誰でもHello Worldくらい、やろうとしてできねーこたぁねぇ」くらいじゃないんですかね。と。

本当に「Fizz-Buzzくらい誰でも書けるでしょ?」なんて信じ込んでる奴は、なんていうかオワッテル気がする。

ええと、なんていうか、揚げ足とってサーセンッシタ!

ああ、それと、皆が皆本当にプログラミングがデキたら少なくとも俺はくいっぱぐれて幸せじゃないので、ちょっと特殊な技能のままでいてほしいなーなんて思ったり!

あと、それと、「誰でも...」レベルの人が間違ってプロ状態になっちゃってたりして、そこそこ出来ると信じてる俺としてはちょっといけすかん状態なので、誰かなんとかしてください。

2007-05-29

[]PerlPHP で一緒に FizzBuzz

なんとなく構文が似ていたので、

ムシャクシャしてやった。

perl -e'for($i=1;$i<=100;$i++){print(($i%15?$i%5?$i%3?$i:"Fizz":"Buzz":"FizzBuzz")."\n");}'
php  -r'for($i=1;$i<=100;$i++){print(($i%15?$i%5?$i%3?$i:"Fizz":"Buzz":"FizzBuzz")."\n");}'

2007-05-11

[]http://anond.hatelabo.jp/20070509134106

public class FizzBuzz {
	public static class NumMessagePair {

		private final int base;

		private final String message;

		public NumMessagePair(int base, String message) {
			this.base = base;
			this.message = message;
		}

		public boolean isAliquot(int num) {
			return (num / base * base == num);
		}

		public String getMessage() {
			return message;
		}
	}

	private final int start;

	private final int last;

	private final NumMessagePair[] pairs;

	private final StringBuilder result = new StringBuilder();

	public FizzBuzz(int start, int last, NumMessagePair[] pairs) {
		this.start = start;
		this.last = last;
		this.pairs = pairs;
	}

	public static void main(String[] args) {
		System.out.print(new FizzBuzz(1, 100, new NumMessagePair[] {
				new NumMessagePair(3, "Fizz"), new NumMessagePair(5, "Buzz") })
				.execute());
	}

	public String execute() {
		for (int i = 1; i <= last; i++) {
			if (isAnyAliquot(i)) {
				addMessages(i);
			} else {
				result.append(i);
			}
			result.append("\n");
		}
		return result.toString();
	}

	private void addMessages(int num) {
		for (int i = 0; i < pairs.length; i++) {
			if (pairs[i].isAliquot(num)) {
				result.append(pairs[i].getMessage());
			}
		}
	}

	private boolean isAnyAliquot(int num) {
		for (int i = 0; i < pairs.length; i++) {
			if (pairs[i].isAliquot(num)) {
				return true;
			}
		}
		return false;
	}
}

自称上級プログラマー仕様認識不足でバグったら教えてもらった後にゆっくり修正する。

汎用性と quick hack

http://anond.hatelabo.jp/20070511095003

こりゃ中途半端拡張性を意識した名残だろうね。fizz 変数の値で割り切れる場合は "Fizz" と表示して buzz 変数の値で割り切れる場合は "Buzz" と表示するようになってるわけだけど、これを少し発展させれば、適当なコンテナ container を準備して container[0].num で割り切れる場合は container[0].message を、container[1].num で割り切れる場合は container[1].message を……と続けていっていくらでも対応できるようになる。でも今回は適当にざっと作るのが目的だからこの状態になってしまったんだと思う。コンテナ方式の実現方法は色々考えられるのでご自由にどうぞ。ぼくはかんがえるのめんどくさい。

http://anond.hatelabo.jp/20070511014839

あ、なるほど。ありがとうございます。

ついでにもうひとつ聞いてみたいんですけど

パラメータってなんでもかんでもメンバ変数にしてしまうのがclassの設計作法としてあるんですかね?

このプログラムの場合、startとlastは外部から与えられそうな値ですが

fizzとbuzzはどっちかというとロジック仕様として組み込まれている感じの値ですよね。

これが同じように並んでいることに、なんとなく気持ち悪い感じを受けるんですけど…(そもそもclassの設計が悪い?)。

割る数と割られる数と余りが0の時に返す文字列をプロパティに持って

割り切れるかどうかのチェックを行うメソッドと

割り切れないときには数字、割り切れる時には文字を返すメソッドをもつようなclassを作って

それに委譲するようにすればいいのかな?

http://anond.hatelabo.jp/20070511021557

剰余不可より100回ループ不可、てほうが制限としては面白いかもね。

まあそれは再帰するだけの話で

$arr = [nil,"Fizz","Buzz","FizzBuzz"]
def fzbz(i)
	f = ((i%3) == 0) ? 1 : 0
	f |= ((i%5) == 0) ? 2 : 0
	$arr[0]=i
	puts $arr[f]
	fzbz(i+1) if i<100
end

fzbz(1)

これを変形すると、条件判断&ループ禁止が書けるな。

$arr = [nil,"Fizz","Buzz","FizzBuzz"]
$f3 = [1,0,0]
$f5 = [2,0,0,0,0]
def fzbz(i)
	f = $f3[i%3]
	f |= $f5[i%5]
	$arr[0]=i
	puts $arr[f]
	([lambda{|i| fzbz(i+1)}, lambda{}])[i/100][i]
end

fzbz(1)

C言語でも関数ポインタで書けるので、Rubyの特権ではない。

fizzbuzz.com

http://anond.hatelabo.jp/20070508170219 こいつをアセンブラで書こうとしていたが、

すでに

http://anond.hatelabo.jp/20070510170511 にそれっぽいものが書かれていた。

しかしデクリメントした直後に判定するならフラグですむがそうじゃないときtest命令入れないといけないのでうまくいかんと思った。

とりあえず8086アセンブラで書いてみたが長くなったので実行ファイル(fizzbuzz.com)をBase64で下に書いておくよ。

~) ls -al fizzbuzz.com
-a--rwx       98 May 11 03:28 fizzbuzz.com*

~) base64 < fizzbuzz.com
uwUDuQoJvl0B/s91ErcD/st1BrpSAesOkLpLAesWkP7LdQi6VgGzBesKkLg6OivBiQSL1rQJzSH+
zXXNtQr+yXXHulYBzSG0TM0hRml6eg0KJEZpenpCdXp6DQokVU0NCiQ=

数字の表示の処理で10で割った余りを使っていたのでまずいと思って修正した。ついでに98バイトまで縮めてみた。

こんなことに時間を使っている俺はバカだ。

ソースも載せとこう。8086なんてほとんど初めてに等しいので汚いだろうけど。


CODE	SEGMENT
	ASSUME	CS:CODE,DS:CODE
	ORG 100H
START:
	mov bx, 0305h
	mov cx, 090Ah
	mov si, OFFSET NUM
LOOP:
	dec bh
	jnz skip1
; 3の倍数だった
	mov bh, 3
	dec bl
	jnz skip2
; 3の倍数で5の倍数だった
	mov dx, OFFSET FIZZBUZZ
	jmp loop5
skip2:
; 3の倍数で5の倍数じゃなかった
	mov dx, OFFSET FIZZ
	jmp loopend
skip1:	
; 3の倍数じゃないとき
	dec bl
	jnz skip3
; 3の倍数じゃなくて5の倍数だった
	mov dx, OFFSET BUZZ
loop5:	mov bl, 5
	jmp loopend
skip3:	
; 3の倍数じゃなくて5の倍数でもなかった
; 数字を表示する。2桁でいい
	mov ax, 3A3Ah
	sub ax, cx
	mov [si],ax
	mov dx, si
	
loopend:
	mov ah,9
	int 21h

	dec ch
	jne loop
	mov ch,10
	dec cl
	jne loop

; 最後のBuzzを表示する
	mov dx, OFFSET BUZZ
	int 21h

	mov ax, 4c00H
	int 21h

	
FIZZ:		DB	'Fizz', 0dh, 0ah, '$'
FIZZBUZZ:	DB	'Fizz'
BUZZ:		DB	'Buzz', 0dh, 0ah, '$'
NUM:		DB	'UM', 0dh, 0ah, '$'
CODE	ENDS

	END START

ログイン ユーザー登録
ようこそ ゲスト さん