• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:縁起の悪い49抜き数字(出力について))

縁起の悪い49抜き数字とは?

このQ&Aのポイント
  • 縁起の悪い49抜き数字とは、10進数の整数を渡して、対応する49抜きの数値を標準出力に出力する関数のことです。
  • この関数は、与えられた整数が8以上の場合、上位の桁に対しても処理を行います。
  • 具体的には、与えられた整数を8で割った余りを基にして、対応する49抜きの数値を出力します。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

質問の詳細がよく分かっていませんが、 1->1、2->2、3->3、4->5、5->6、6->7、7->8、8->10 と変換していくのであれば、(2)n/8 となるかと思います。

chk123
質問者

お礼

entreeさん、3日してやっと理解できました。 1->1、2->2、3->3、・・・・記述されている意味も用法も分かっておりませんでした。スッキリデス。 ありがとうございました。

chk123
質問者

補足

entreeさん、質問が悪くてすみません。 ホテルなど番号を振るときに、4や9を外して番号を振ることがあります1,2,3,5,6,7,8,10・・・・38,50のように、すべての桁で4と9を含む数を外すとき、8進数と同様な考えが出来るようです。その場合の、「上位桁の処理を行う」(2)が理解できていません。 よろしくお願いします。

その他の回答 (2)

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.3

>(2)"%8\n" n 良く分からないのですが、・・・。  う~ん、宿題の転記ミスかな。 ------------------------------------------- 老化防止のため、作成してみました(Borland C++5.6.4)。  ソースは、   ・++ではない   ・「上位桁の処理を行う」は考慮していない   ・再帰を使っていない   ☆ことから、「宿題の回答」とはなり得ません。あしからず・・。 ------------------------------------------- >ホテルなど番号を振るときに、4や9を外して番号を振ることがあります  てっきり、パチンコ台「番号表記」かと思いました(ジジクサ)。  (0→ 0)  10→12  20→25  30→37  40→60   1→ 1  11→13  21→26  31→38  41→61   2→ 2  12→15  22→27  32→50  42→62   3→ 3  13→16  23→28  33→51  43→63   4→ 5  14→17  24→30  34→52  44→65   5→ 6  15→18  25→31  35→53  45→66   6→ 7  16→20  26→32  36→55  46→67   7→ 8  17→21  27→33  37→56  47→68   8→10  18→22  28→35  38→57  48→70   9→11  19→23  29→36  39→58  49→71 71という表記の台は、49「番目」の台ということですね。 ☆8進数化(◆)後、8進の4表記は5、順次ずれて、8進の7表記を8とする(●)、でいいのでは。 #include <stdio.h> void printwo49( unsigned int n ) {  int i, iByte = 30, i10 = n;  char cKekka[32] = { 0x00 }, cDum;  while( n ){   i = n % 8; // ◆   if( 4 <= i ) i++; // ●   cDum = (char)( 0x30 + i ); // 文字化   cKekka[ iByte-- ] = cDum; // 格納   n /= 8; // ◆  }  printf( "%d %s\n", i10, &cKekka[ ++iByte ] ); } void main() {  unsigned int n;  for( n = 40; n < 50; n++ ) printwo49( n ); } 注:インデントに全角空白を使っています。

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

課題か何かですか? 丸投げは禁止ですよ。 ・0~9のうち、4と9が使えないので、各桁で使える数字は8種類。つまり、8進数を考える必要がある。 ・10進数の数値から8進数の数値に変換するにはどうすればよいのか ・再帰呼び出しとはどういうものか を理解すれば、自ずと答えは出てきます。 (2) については、 10進数で0~63 の数値を、8進数二桁の数値に変換するには、 上位桁・下位桁はそれぞれどういう数式で表されるか をまず考えてみてください。

専門家に質問してみよう