- ベストアンサー
たぶん初歩の問題ですが。。。
TAGOSAKU7の回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
サンプルを作りました。 斜辺以外の2辺を、[i/j]のループカウンタの値を使用しています。 iが1~50 jが1~50 のループにしてしまうと i = 3 ; j = 4 i = 4 ; j = 3 となってしまうので、 iが1~50 jがi~50 のループとしています。 これによって、データの重複が存在しなくなります。 > If lngMaxLimit < lngCalc Then > Exit For > End If というのは、斜辺のべき乗の最大値(この問題の場合は2500)を超えるような斜辺の時は、Jカウンタのループを抜ける処理になってます。 > sngCalc = lngCalc ^ 0.5 > lngWork = sngCalc というのは、i/jより算出した斜辺の値に平方根の処理をおこない、変数sngCalcに代入されます。 それを小数点以下を切り捨て、変数lngWorkに代入してます。 この切り捨て前・後が同じ値であれば、斜辺は整数であると言えます。 Sub Main() Dim lngMaxHypotenuse As Long '斜辺の上限 Dim lngMaxLimit As Long '斜辺の上限のべき乗 Dim lngCalc As Long '斜辺以外のべき乗どうしを加算した時の値、計算ワーク Dim sngCalc As Single '斜辺以外のべき乗どうしを加算した時の値を平方根にかけたもの、計算ワーク Dim lngWork As Long 'sngCalcで得た値の、小数点以下切り捨てした値 Dim i As Long 'Iループカウンタ Dim j As Long 'Jループカウンタ Dim ansCount As Long '見つかった回答件数 Dim ansStr() As String '回答を収める配列 Dim strOutPut As String '回答を出力する文字列 '回答の初期化 Erase ansStr ansCount = 0 '斜辺MAX値 lngMaxHypotenuse = 50 '斜辺2乗の値を超えることはありえないので、上限をセット lngMaxLimit = lngMaxHypotenuse ^ 2 For i = 1 To lngMaxHypotenuse For j = i To lngMaxHypotenuse 'このときの斜辺のべき乗の値を求める lngCalc = (i ^ 2) + (j ^ 2) 'もし斜辺の2乗の値が上限を超えたら、Jカウンタのループを抜ける If lngMaxLimit < lngCalc Then Exit For End If '斜辺のべき乗から平方根により、斜辺の値を求める sngCalc = lngCalc ^ 0.5 'ロング型の変数にセットする(この時斜辺の値に小数点以下が存在するとき、切り捨てられる) lngWork = sngCalc '小数点以下を切り捨てする前と、切り捨てた後が同じ値ならば、整数値の3辺である If (lngWork = sngCalc) Then ReDim Preserve ansStr(ansCount) As String ansStr(ansCount) = i & " / " & j & " → " & lngWork ansCount = ansCount + 1 End If Next j Next i '答えの出力 If ansCount > 0 Then strOutPut = Join(ansStr, vbNewLine) Else strOutPut = "斜辺は求められませんでした。。。" End If MsgBox strOutPut End Sub
関連するQ&A
- 直角三角形に関する問題がわかりません
「直角三角形において,直角をはさむ2辺の長さの和が一定なら,どんな形の三角形の斜辺が最も短くなるか?」 という問題でつまづきました. (考え)直角をはさむ2辺の和をb,そのうちの1辺をaとすると 斜辺^2=a^2+(b-a)^2 =2a^2-2ab+b^2 長さが負にはならないので 斜辺=√2a^2-2ab+b^2(√以下はすべて√のなか) よって2a^2-2ab+b^2が最小になるときを考えればよい. 2a^2-2ab+b^2=Pとおく P=2(a-b/2)^2+b^2/2 よってa=b/2のとき,Pは最小値をとる, よってこの直角三角形の,直角をはさむ2辺の長さは等しいので, 直角二等辺三角形 この解き方だと解けます. しかし,次の解き方ではできないので,何故できないのかを教えてください. (解)直角をはさむ2辺の和をb,そのうちの1辺をaとすると 斜辺^2=a^2+(b-a)^2 長さが負にはならないので 斜辺=√a^2+(b-a)^2(√以下はすべて√のなか) よってa^2+(b-a)^2が最小になるときを考えればよい. Q=a^2+(b-a)^2とする. Q=(b-a)^2+a^2 よってb=aのとき,Qは最小値をとる. これだとおかしい
- ベストアンサー
- 数学・算数
- 数学の問題です。解答お願いします。
問題 図のような、∠Aが直角の△ABCで、辺BC,CA,ABの長さを それぞれa,b,cとする。 このとき、次の問いに答えよ。 (1) a b cの間にどんな関係が成り立つか。 (2) 斜辺BCに対する高さADをa b c で表せ。
- 締切済み
- 数学・算数
- 中学の三平方の定理教えて下さい
直角三角形の直角をはさむ2辺の長さをa,b,斜辺の長さをcとする。 2辺の長さが次のようなとき残りの辺の長さはいくらになるか。 a=5cm c=8cm この問題の答えを教えて頂けませんか? また解き方についてなのですが、 このタイプの問題は a二乗+b二乗=c二乗の三平方の定理公式を利用して計算をすればよいのですよね? この問題の場合、残りの辺の長さ=bの長さという事でいいのでしょうか? 私の考えが間違っていなければ、 答えは√39cmか6cmだと思うのですが、 看護学校を受験するため、数学を勉強しなおしています。 独学な上に看護学校の問題には解答がなく本当に困っています。
- ベストアンサー
- 数学・算数
- 三角関数の基礎ですが
お世話になります。直角三角形の各角をA,B,CとしたときにBをθ(仮に15°とします)Cを直角としてAB間の斜辺がわかる(仮に40ミリとします)場合に対辺AC間の値を出す公式を教えて下さい。数値は常に変わるので公式が知りたいです
- ベストアンサー
- 科学
- 直角3角形と一次不等式
<か≦か判断できないので質問します。 3辺の長さがそれぞれ2桁の整数である直角3角形がある。今斜辺の長さは他の1辺の長さの一の位と十の位の数字をいれかえた数であるとする。このとき、この3角形の3辺の長さを求めよ。 a,bは1,2,3,・・・,9のいずれかで、a>bとし、斜辺を10a+b,直角をはさむ1辺を10b+a,残りの辺をc(整数)とすると c^2+(10b+a)^2=(10a+b)^2,c^2=(10a+b)^2-(10b+a)^2, c^2=9*11*(a+b)*(a-b) a>bより、ここがわからない箇所です 0<a-b<a+b<17・・・(1) 自分はa=9かつb=8のとき直角3角形ができると思い。0<a-b<a+b≦17だと思ったのですが、ひょっとしたら、2辺の和は1辺より長いの条件などにより、a=9かつb=8にならないのかとも思い、自分の考えが正しいかどうかわかりません。本の記述(0<a-b<a+b<17)があっていたらその理由を教えてください。お願いします。問題の続きをすこし書くと、 c^2は完全平方数だから、(a+b)*(a-b)は11の倍数でないといけない。条件(1)よりa+b=11でa-bは完全平方数。 a-b=1,4,9を代入し連立方程式を解いて、a,b,cを求めています。答えは65,56,33です。
- 締切済み
- 数学・算数
- 整数部分、小数部分の問題です。
a=√5+√2、b=√5-√2とするとき a2乗-b2乗=□ 、ab=□である。 □<2√10<□+1であるから、a/bの整数部分をn、小数部分をcとするとき n=□、3c-5/c=□である。 (入試過去問題) ※整数、小数部分の計算で分数が入ったとき、マイナスが入ったとき(3/4√5とか-2√7など) 解けなくなります。 ご教授願います。
- 締切済み
- 数学・算数
お礼
おお!!なんか、長々と書いて頂いてしまって、申し訳ないです!!(><)っっ本当に有難うございました!!なんか申し訳ないんですけど、初心者なんで、まだ習ってない文字とかがいっぱいで、よく分からなかったです。。。でも、回答をもとに、よく考えてみますね。ありがとうございました!!