• ベストアンサー

演算子を使わない演算

はじめまして、ヨロシクお願いします。 早速ですが、私は今「入力された数値を7で割った値を表示しろ」という問題に取り組んでいます。これには次の条件があります。 (1)演算子の/を使ってはいけない。 (2)繰り返し処理を使ってはならない。 という縛りがある上で計算をしたいと思っているのですが、なかなかうまくいきません。何かいい方法はないでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • i2719
  • ベストアンサー率35% (11/31)
回答No.6

/7.0 の代わりに *0.14285714285714285 と書けば、いいのでは。

mismoon
質問者

お礼

ありがとうございます。 とてもシンプルな上に確実だと感じました。 とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.10

もしかして、 演算子「/」を使わずに、「/=」を使えって事だったりして? a = 12345678; // 入力された数値 a /= 7; // 7で割る

mismoon
質問者

お礼

早速の回答ありがとうございます。 勉強を深めるために参考にさせていただきたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • unibon
  • ベストアンサー率47% (160/340)
回答No.9

ANo.6さんの回答が良いと思います。 なお、別解としては、つぎのような感じです。 public class Test { public static void main(String[] args) { double x = 100.0; double y; if (x > 0) { y = Math.exp(Math.log(x) - Math.log(7.0)); } else if (x < 0) { y = -Math.exp(Math.log(-x) - Math.log(7.0)); } else { y = 0; } System.out.println(y); } }

mismoon
質問者

お礼

ありがとうございました。 とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.8

double N = 20; // 割られる数 double M = 7; // 割る数 double a = N * Math.pow(M, -1); System.out.println(a);

mismoon
質問者

お礼

ありがとうございます。 勉強していく上で参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • beubeu
  • ベストアンサー率70% (7/10)
回答No.7

入力された数値が自然数であることが前提ですが。こういうのはどうでしょう (動作未確認)。 int N; // 入力 int M; // 出力 String s = new String(N, 7); M = Integer.parseInt(s.substring(0, s.length() - 1), 7);

mismoon
質問者

お礼

ありがとうございます。 これからの勉強にいかさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • japan_3
  • ベストアンサー率0% (0/2)
回答No.5

int i; int z; i = z %3; //zを3で割ったあまり でOK?

mismoon
質問者

お礼

回答ありがとうございます。 これから勉強する上で参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.4

すぐに思い付くのは与えられた数が 7 より小さくなるまで「繰り返し」引き算することだね。 繰り返しがダメならその部分を再帰呼び出しにするとか?

mismoon
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.3

この辺を使うのが多分お手軽?(出題者の意図とは違うかもしれませんが…) java.math.BigInteger.divide java.math.BigDecimal.divide

mismoon
質問者

お礼

ありがとうございます。 これから勉強するにあたり、参考にさせていただきたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
noname#39970
noname#39970
回答No.2

ごめん ちがった 。。。

全文を見る
すると、全ての回答が全文表示されます。
noname#39970
noname#39970
回答No.1

7回引き算。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • perl 条件演算子 範囲演算子についてです

    演算子 条件演算子 条件演算子 ?: は条件式の値により、2者のうちのどちらかを選択します。 $a=($x<10)?10:20; 変数$aの値が$x<10という条件において、真であれば:左側の10を選び、偽であれば:右側の20を選ぶ。 $a=10; 変数$aに10を代入する。 $a==5?print "5です。\n":print "5ではありません。\n"; 条件式でaが5であれば:左側の print "5です。\n"を表示します。 条件式でaが5でなければ:右側の print "5ではありません。\n"を表示します。 $a==10?print "10です。\n":print "10ではありません。\n"; 条件式でaが10であれば:左側の "10です。\n" を表示します。 条件式でaが10でなければ:右側の "10ではありません。\n" を表示します。 範囲演算子 範囲演算子 .. は、左側の値から右側の値まで、1つずつ増やした値の集まりです。 値には、半角英数字の数値または文字列が指定できる。 print 3..5; 3 4 5 と表示する。 一応、訳を下に書いたのですが合っていますでしょうか。

  • 【エクセル 演算】

    演算で例えば、 「A1の数値に5を掛けてB1に表示させる」→「もうA1の数値は必要ないのでA1セルを削除」→「B1の数値も消える(英語?が表示される)」 こんな感じになってしまい、仕方なく計算後不要な数値が残ってしまいます。  どうすればいいのでしょうか?? それと、A1の数値に5を掛けて【A1】に表示させる・・・上書きというのは可能なのでしょうか??これができれば、前述の問題も回避できるのですが・・・ 宜しくお願いします。

  • チェックボックスをビット演算子で処理したい

    チェックボックスをビット演算子で処理したいのですが、DBに格納した数値をビット演算子で処理する方法がわかりません。 たとえば、北海道から沖縄までのチェックボックスを作成してそれぞれに 1,2,4,8,16,32・・・とvalueを持たせます。 DBには数値の和を入れておきます。 その値を分解してチェックボックスをcheckedにしたいです。 ちょっとわからなくなってしまって。 教えてください、。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数の演算子を選択する場合の処理

    複数の演算子を選択するプログラムがあり、選択する演算子によって計算方法を変えたいのですが、このときに今やっている方法はifの条件分岐にて処理を行っておりますが、演算子は変数に代入できないのでしょうか? 例えばべき乗を選択した場合は 変数= ^ また、これと同じく代入演算子の場合も 変数= ^= という方法があれば教えていただきたいです。 よろしくお願いいたします。

  • 演算対象の数字と演算子を入力して計算させる

    数字と演算子をそれぞれ入力し、優先順位の高い順に四則演算させるにはどのような考え方をすればよいのでしょうか。 数字をa[7]とおいて、演算子をop[7]としてそれぞれ配列に格納しましたが、そこから先に進めません。 オペランドと演算子の組み合わせならば優先順に計算してくれるのはわかっていますが、オペランドと演算子を格納した配列では上手く行きません。 実は既に全ての演算子の組み合わせをIfで表示させるプログラムを根性で作ったのですが、最適解を知りたいです。 言語はCでvisualstudioを使っております。 条件はn回数字を入力したらn-1回演算子を入力し、n回目に=を入力する。nの最大値は7とする。です。 だらだらと見辛い文章で申し訳ありませんが、何卒宜しくお願いします。

  • ロータス1-2-3で作成した、演算表を含むファイルをエクセルに変換し、保存したい。

    ロータス1-2-3 2001 ワークブック(123)で作成した、演算表(入力セル2)を、「名前をつけて保存」「Excel 97/2000 ワークブック(XLS)」で保存すると、表は値として表示されるが、演算の機能がなくなる。エクセルで同等の処理をする方法を教えてください。

  • awkでファイルから読み込んだ値を、演算させるにはどうしたら良いですか

    awkでファイルから読み込んだ値を、演算させるにはどうしたら良いですか。 ファイル(hoge.txt)の内容は、次の通り(全4行) 123 456 50 20 これを、bashスクリプトで計算させます。 FF=`cat hoge.txt | awk 'BEGIN {x=$2;printf ("%s, %s", (148+x*0.05), x);}'` echo "答え = ${FF}" このときの$2の値は、50です。但し、文字列として扱われているようです。 xの値を、数値として代入され、四則演算をさせるにはどうしたら良いですか? 以上、よろしくお願いします。

  • エクセルでの簡単な演算ができません

    いろんなファイルからコピーしたりしてエクセルの1シートにデータまとめました。 一度、すべてコピーし、値で貼り付けてありますし他へのリンクもありません。 そんな、データをグルーピングして平均値等を求めようと始めました。 しかし、ある列に関しては問題なく平均値等の演算がなされているのですが、別のある列に関しては結果が#DIV/0!となってしまいました。 今一度、average等を入力しても結果は同じでした。しかしその列のデータに対例えば、=J3+J4と入力する分には正答が得られます。それを=SUM(J3:J4)としてしまうと#DIV/0!となってしまいます。 会社で作成したものをメールで自宅のパソコンへ送付したものなのですが、何回もそういうことは行っていて問題はないと思います。 計算可能な列、不可能な列のセルの書式設定を比較しても変わりがありません。 ただし、既存データの上に新たに入力すると計算はなされます。 タイプして入力することは、時間がかかりすぎ無理なのですが、この症状の説明でお分かりいただけたならアドバイスお願いいたします。

  • インクリメント/デクリメント演算子を使った計算

    Javaでのインクリメント演算子とデクリメント演算子を 使った計算についての質問です。 int a = 10; int b = a++ + ++a + --a - a--; このコード処理後の変数a,bの値の計算方法(考え方)が つかめず苦戦しています。 解答はa=10,b=22だそうです。 ちなみに例えば次のコードのb=a++;のように 右辺と左辺が1つずつの場合は理解しやすいです。 int a = 1; int b = 0; b = a++; //処理A 処理A後の変数a,bの値は b=aをした後でa=a+1を行うので a=2,b=1 となることは理解できます。 ご教授のほどよろしくお願いします。

  • 演算(条件)

    エクセルで次の演算は出来るのでしょうか? 実数A,実数B が在ります あるセル=A×Bの計算式が入力されています このセルの答えC[実数]の一の位が (1)0~4の場合は 0   例えば C=1233.2 ならば 1230 (2)5~9の場合は 5   例えば C=1237.1 ならば 1235 と計算させる方法を教えてください よろしくお願いします。

このQ&Aのポイント
  • 週中のかしわ記念は現地船橋競馬場で生観戦。ショウナンナデシコの強さに驚きました。次はNHKマイルCです。
  • NHKマイルCは難解なメンバーが揃い、自慢できる当たりやすさとなっています。注目はインダストリアです。
  • インダストリアは2走前のジュニアCでの末脚が印象的。このレースでも好走することが期待されます。
回答を見る

専門家に質問してみよう