もまえら!世界のナベアツをプログラミングしてくれ

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
仕様
・言語問わず。
・数字をひらがなで読み上げる事。
・999まで読み上げられる事。

さあ!!もまえら作ってください。
2デフォルトの名無しさん:2008/04/27(日) 10:12:29
プログラミング関係のブログでなんどか見たけど、実物を見たことない > ナベアツ
3デフォルトの名無しさん:2008/04/27(日) 11:09:54 BE:233244825-PLT(40072)
http://www.yomogimochi.com/src/nabe.php.txt
PHPだけどこんなんでいいんですか?
4デフォルトの名無しさん:2008/04/27(日) 11:52:27
http://q.hatena.ne.jp/1207585413

こんなんあった
5デフォルトの名無しさん:2008/04/27(日) 15:11:47
6デフォルトの名無しさん:2008/04/27(日) 15:19:09
>>2
要はFizzBuzzの亜種だ
7デフォルトの名無しさん:2008/04/28(月) 15:18:06
なに

1
2
さん!
4
5
ろく!

て出せばいいの?
8デフォルトの名無しさん:2008/04/28(月) 16:42:30
>>7
Yes
9デフォルトの名無しさん:2008/04/28(月) 17:14:15
char* makeAho(int i, bool show)
{
  char* data[] = {"いち","に","さん","よん","ご","ろく","なな","はち","きゅう"};
  char* digit_data[] = {"じゅう","ひゃく","せん","まん"};
  char buf[1024] = "";
  int digit = 1, j = 0;
  bool contain3 = false;
  while((i / (10*digit) != 0)){
    digit = (digit == 1) ? digit + 9: digit * 10;
    j++;
    if( ( i - (i/digit)*digit) / (digit/10) == 3 || i/digit == 3)
      contain3 = true;
  }
  if( show || i > 0 && ( i % 3 == 0 || contain3)){
    if( i < 10 ){
      if(i > 0)strcat(buf,data[i-1]);
    }
    else{
      if(i / (digit) != 1)
        strcat(buf, data[(i / (digit)) - 1]);
      strcat(buf,digit_data[j-1]);
      strcat(buf,makeAho(i - (i/(digit))*digit, true));
    }
    if(!show)strcat(buf,"!");
  }
  else
    sprintf(buf,"%d",i);
  return buf;
}
しょぼいけど。99999までいけます。
10デフォルトの名無しさん:2008/04/29(火) 12:00:27
実際に作るならやっぱり数値→ひらがな変換関数だけ別に作ってメインなりなんなりから呼んでオシマイ、かな
きゅうひゃくきゅうじゅうきゅう が入るバッファだけもらって。

>>9 return buf; がちょっとイヤです
11デフォルトの名無しさん:2008/04/29(火) 19:07:51
3の倍数の時、動作がおかしくなる(´・ω・`)
12デフォルトの名無しさん:2008/04/30(水) 12:35:48
>>11
アホになるなら、それで正解じゃね?
13デフォルトの名無しさん:2008/04/30(水) 18:45:25
4の倍数も工夫して付け足すべきである。
14デフォルトの名無しさん:2008/05/01(木) 17:00:00
>>9
makeAhoにintの引数を足して、
3を引数に置き換えたら他の値に対応出来る。
bufを引数にしてやればなおよし。
15デフォルトの名無しさん:2008/05/02(金) 15:23:34
>60 名前: 寧(catv?) 投稿日: 2008/05/02(金) 15:21:40.86 ID:G0ztDJyC0
>もまえら!世界のナベアツをプログラミングしてくれ 
>http://pc11.2ch.net/test/read.cgi/tech/1209258156/ 
>
>プログラム板で技術の粋を結集して取り組んでるらしい 


(´・ω・`)やぁ。ようこそ 

16デフォルトの名無しさん:2008/05/04(日) 21:12:40
逆転の発想。
3の倍数以外を賢そうにすればよい。
17デフォルトの名無しさん:2008/05/04(日) 21:27:32
ものっそい複雑な数式を経由して解がそれになるようにするとかかい
18デフォルトの名無しさん:2008/05/04(日) 22:04:55
というか4の倍数ってどうすんの?
4 : 0x00000100
8 : 0x00001000
12: 1ダース
16: 0x00010000
20: 20
24: 2ダース
32: 0x00100000
36: 3ダース
40: 40
ってことでいいのか?
19デフォルトの名無しさん:2008/05/05(月) 15:07:28
8の倍数の時検索する
20デフォルトの名無しさん:2008/05/06(火) 12:51:15
元チェッカーズの誰かに激似のアレか?
21デフォルトの名無しさん:2008/05/08(木) 09:16:22
bool isAho(int input, int v)
{
if((input%v)==0 ) return (input!=0);
do if((input%10)==v) return true;
while(input/=10, input!=0);
return false;
}
22デフォルトの名無しさん
nenshu<<=2