2桁の自然数に5を含むかどうかを判定する関数を作成するにはどうしたらいいですか?

また、n桁の自然数にmを含むかどうかを判定する関数を作成するにはどうしたらいいですか?
困っています、教えてください。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2008/11/16 23:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:SALINGER No.1

回答回数3454ベストアンサー獲得回数969

ポイント27pt

回答ではないのでポイント不要です。


質問文の意味が明確じゃないようです。

2桁の自然数に5が含むというのは、公約数に5が含むということなのか。

自然数が2桁だけあって、その中に5があるかどうかということなのか。

前ならば5で割って余りがあるか、後ろならば総当りして調べる関数となりましょう。


質問の下の方に【コメント・トラックバック表示】という設定項目がありますので、そこを【回答受付中にコメント・トラックバックを表示する 】に変更すれば、下のコメント欄で不明な点を指摘できるようになりますので変更した方がよろしいかと思います。

http://q.hatena.ne.jp/

id:miyake0930

そのような関数をemacsでプログラミングするにはどうしたらいいのでしょうか?

2008/11/10 00:12:47
id:worldtravel No.2

回答回数34ベストアンサー獲得回数4

ポイント27pt

とりあえずphpですが...

違うことでしたらポイント不要です。

http://q.hatena.ne.jp/1226241932

$no = "45";

$check = check5($no);

function check5($no){
	if(ereg(5,$no)){ return 1; }
}
$n = "1234567890";
$m = 3;

$check = check($n,$m);

function check($n,$m){
	if(ereg($m,$n)){ return 1; }
}
id:miyake0930

回答していただきありがとうございます。プログラムの仕方として、emacsでプログラミングする

方法を教えてください。お願いします。

2008/11/10 00:14:26
id:s34itl No.3

回答回数117ベストアンサー獲得回数4

ポイント26pt

文字列に変換して判定するのが簡単です。

(defun check (num m)

(interactive "nNumber-to-check:\nnNumber-to-be-included:")

(string-match (format "%d" m) (format "%d" num)))

リターン値は、含まれる:non-nil、含まれない:nil です。

ただし、チェック対象の自然数の桁数は考慮していません。

2桁でもn桁でもこれで通ります。

(check 302) --> nil

(check 45 5) --> 1

(check 9951 5) --> 2


何かテキスト値を返したいということでしたら、例えば次のようにすればよいかと思います。

(defun five (num m)

(interactive "nNumber-to-check:\nnNumber-to-be-included:")

(if (string-match (format "%d" m) (format "%d" num))

"含まれます"

"含まれません"))


桁数チェックが必須なら、string-match の前に桁数がxxxかの判定をする必要があります。

(defun check (xxx num m)

(interactive "nNumber-digits:\nnNumber-to-check:\nnNumber-to-be-included:")

(if (equal (length (format "%d" num)) xxx)

(string-match (format "%d" m) (format "%d" num))))


#octaveで動くかどうかは、octave使ったことがないのでご容赦ください。

urlはダミーです。

http://q.hatena.ne.jp/1226241932

  • id:miyake0930
    自然数が二桁(1~99)の中で、その中に5があるかどうかということです。例えば、51や35は5を含みます。
  • id:SALINGER
    関数は、どの言語の関数なのでしょうか?
  • id:Z9M9Z
    #define KETA 2
    #define TRUE 1
    #define FALSE -1

    Boolean check(int checknum) {
    char s[KETA];
    s = sprintf("%d", checknum);
    for(i=0; i<KETA; i++) {
    if(s[i] == '5') return TRUE;
    }
    return FALSE;
    }

    /// ^o^;;
  • id:miyake0930
    すみません(^_^;)よくわかりません。言語としては、octaveです。文章作成として、Emacsを使って、octaveで表示させたいのですが、その場合はどうすればいいですか?
  • id:Mook
    この手のものは自分で考えて手を動かさないと身に付きませんよ(宿題のようなので)。

    特に Octave は普通の言語の書き方をしたのでは、特性を生かせないようです。
    http://adlib.rsch.tuis.ac.jp/~akira/unix/octave/matrix.html

    ちなみにEmacs 自身はエディタなので(いろいろなことはできるが)
    Emacsでプログラミングするというのは、エディタの使い方を聞いているように
    しか見えません。
    http://www.obihiro.ac.jp/~suzukim/masuda/octave/html/octave_166.html#SEC235
  • id:gkkj
    学校の課題か?…おっと上のコメントでも指摘されてるな。
  • id:standard_one
    関数名はナベアツで
  • id:SALINGER
    そういうコメントは、コメントオープンしたほうが良いと言った私が恨まれるのでやめたほうが。

    ただ、octaveであるというのはすごく重要なことなのでオープンしてもらってよかった。
    octaveのマニュアルを見た感じ書けないこともないようだけど、
    octaveならではの書き方があるような気がするので、使ってる人にまかせます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません