質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.09%

0!=1

受付中

回答 8

投稿

  • 評価
  • クリップ 1
  • VIEW 939

score 4073

みなさん、

0!=1

という式を見て、まず何を思い浮かべますか?

私は0は1でないという関係演算が先に思い浮かびました。が、実は階乗演算であったと気付いて笑ってしまったことがありました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2017/02/02 09:17

    こちらの質問が他のユーザから「プログラミングに関係がない質問」という指摘を受けました
    teratailでは、プログラミングに関して困っていることがないと思われる質問を推奨していません。
    「質問を編集する」ボタンから編集を行い、具体的に困っている理由や解決したいことを明確に記入していただくと、回答が得られやすくなります。

  • 退会済みユーザー

    2017/02/03 11:15

    こちらの質問が他のユーザから「問題・課題が含まれていない質問」という指摘を受けました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 8

+1

こんにちは。

まずは、falseと思います。なんでfalseって書かないのかな?と思います。
しかし、階乗だとtrueになりますね。う~む。
その構文を階乗と解釈し、かつ、それを受け入れる言語を使っていたら超はまりそうです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/01 23:56

    コメントありがとうございます。階乗を演算子で記述できる言語は私も見たことがないですね。ちなみに論理的にはtrueですよ。

    キャンセル

  • 2017/02/02 00:04

    APLだと!で階乗だと思ったけど、前置演算子でした。

    キャンセル

  • 2017/02/02 00:31

    階乗を数式で見たのは高校数学以来なのでした・・・^^;

    キャンセル

  • 2017/02/02 12:09

    あああ、0 != 1はtrueでした。我ながら条件判断ミスは痛い。気を抜くと、時々やってしまいます。orz

    キャンセル

0

とりあえず思いつくのはこんなパターン 結果はTRUE

#include <stdio.h>
void main(void){
    if ( 0!=1 ){
        printf("True\n");  //Trure
    }else{
        printf("False\n");
    }
    printf("Result:%d\n",0!=1); // Result:1
    printf("Result:%d\n",8!=5); // Result:1
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/02 20:10

    回答ありがとうございます。比較演算であれば結果はtrueです。

    キャンセル

0

タグでCと指定があるのでこの前提で。

実は階乗演算であった

などという事はなく条件式が常に真となるの一択です。

仕様としての記述に条件として0!=1という記述があったとしても、C言語での実装時に階乗演算式は実装しないでしょう。 if (1) {} などとコーディングしてしまいます。階乗演算を意図していた場合は仕様の記述としては悪手でしょうね(仕様に記載する時点で真偽が確定しているものはその物ズバリ記載し補足記述として階乗演算の結果を1となぜ比較するのかを記載すべき)。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/02 20:11

    回答ありがとうございます。比較演算であれば結果はtrueです。タグは適当につけました。数学上の表記もあればつけたかったです。

    キャンセル

  • 2017/05/23 18:50 編集

    C++ならoperator!(int)とかすれば、!(n)とか出来そうですね?・・・初めて見たらnの否定に見えるだろなぁ・・・もし、0の階乗なら(0!=1は)左辺値にはならないですからコンパイルエラーですねd^^
    (つっこなまいでください^^;)

    キャンセル

0

40-32÷2=4!
というのを思い出しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/02 20:12

    回答ありがとうございます。そういうのもありましたね。

    キャンセル

0

プログラマが数学の式を見た場合の違和感...仕様書には載せられることがあるかもしれませんね。
まじめに回答してしまうと、プログラミングコードであれば、どう評価されるかは演算子の優先順位次第でしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/02 20:12

    回答ありがとうございます。

    キャンセル

0

CやC++で数値や変数の後ろに「!」をつけたら階乗計算してくれるような演算子があれば数値演算をプログラムする時に楽かも、と一瞬思いましたが、「!=」と書かれてしまった時に比較演算子と区別がつかないのであかんなぁと思い直しました(笑)
階乗計算をそんなに頻繁に行うことも実際にはないですからね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/02 20:13

    回答ありがとうございます。

    キャンセル

0

単純にtrueだなぁと思いますね

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

…直接は関係ないかもしれませんが。

bool hoge( ... )
{

 int hogehoge1;
 int hogehoge2;

 …実処理…

 return (hogehoge1 != XXX ) && !hogehoge2 ;
}

…他人のコードトレースしてると、嫌になる時がある。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る