c言語の多重ループです

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
moo

c言語の多重ループです

#1

投稿記事 by moo » 6年前

最近c言語を始めたばかりで初心者です
1≦a≦100及び1≦b≦100をそれぞれ満たす2つの自然数a,bについて、a^2+b^2=c^2を満たす自然数a,b,cの組み合わせを列挙するプログラムの作り方が全然わかりません。
作成していただけると助かります。軽く解説を入れてくれたら助かります
以下が実行例です
3^2+4^2=5^2
4^2+3^2=5^2
5^2+12^2=13^2
中略
100^2+75^2=125^2

アバター
purin52002
記事: 235
登録日時: 7年前
連絡を取る:

Re: c言語の多重ループです

#2

投稿記事 by purin52002 » 6年前

http://mathtrain.jp/pythagoras
こんなサイトがありました。

作成して動作確認するのが面倒だったので、アルゴリズムだけ考えてみました。
こんなときでもないとアルゴリズム書かないので練習もかねて^^;
わかりづらかったら(ってかわかりづらい気がする^^;)申し訳ないですorz

以下、頭の悪そうなアルゴリズム

コード:

algorithm pitagoras is
FOR m = 2 to inf , n = 1 to inf
    a <- m^2 - n^2
    b <- (2mn)^2
    c <- m^2 + n^2
    IF a > 100 or b > 100 THEN
        RETURN
    ENDIF
    CALL print(a ,b ,c)
    CALL print(b, a, c)
    INCREMENT m
    INCREMENT n
ENDFOR

//print(a, b, c)はa^2+b^2=c^2と表示する関数
目標値がないのにFORループ回すのは頭悪そうですね^^;
WHILEでかけば途中のIF文が省略できそうです^^
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

かずま

Re: c言語の多重ループです

#3

投稿記事 by かずま » 6年前

moo さんが書きました:最近c言語を始めたばかりで初心者です
優しい問題から考えてみましょう。

次のプログラムは書けますか?

コード:

1≦a≦5 及び 1≦b≦5 をそれぞれ満たす2つの自然数 a, b について、
自然数 a, b の組み合わせ(順列)をすべて列挙するプログラム
実行例
1 1
1 2
1 3
中略
5 5
多重ループのプログラムです。

次のプログラムは書けますか?

コード:

1≦a≦10 及び 1≦b≦10 をそれぞれ満たす2つの自然数 a, b について、
a + b = 10 を満たす自然数 a, b の組み合わせを列挙するプログラム
実行例
1 + 9 = 10
2 + 8 = 10
3 + 7 = 10
中略
9 + 1 = 10
次のプログラムは書けますか?

コード:

1≦a≦10 及び 1≦b≦10 をそれぞれ満たす2つの自然数 a, b について、
a + b = c[sup]2[/sup] を満たす自然数 a, b, c の組み合わせを列挙するプログラム
実行例
1 + 3 = 2^2
1 + 8 = 3^2
2 + 2 = 2^2
中略
10 + 6 = 4^2

返信

“C言語何でも質問掲示板” へ戻る