• ベストアンサー

演算子を使わない演算

はじめまして、ヨロシクお願いします。 早速ですが、私は今「入力された数値を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