アプリ版:「スタンプのみでお礼する」機能のリリースについて

C++ で「a2 +b2 =c2 を満たす自然数 a, b, c (ただし c≦20) を全て挙げ数の組の個数を表示するプログラムを作成せよ。ただし、以下のような struct NumABC および vector<NumABC>all_numbers を使い、条件に合う自
然数の組を全て保存したうえで、最後に、その次に示す for 文で表示すること。」という問題が出て一応作ってみたのですができませんでした。どなたかお願いします。

#include <stdio.h>#include <iostream>#include <vector>struct NumABC {
int a, b, c;
};

int main()
{
std::vector<NumABC>all_numbers;
int i,a,b,c;

for (a = 1; a <=20; a++) {
for (b = 1; b <=20; b++) {
for (c = 1; c <=20; c++) {
if (a*a+b*b==c*c) {

all_numbers.push_back(NumABC{a,b,c});
}
}
}
}for (i = 1; i<all_numbers.size(); i++) {
printf("a,b,c=%d,%d,%d\n",all_numbers[i].a,all_numbers[i].b,all_numbers[i].c );
printf("\n");
}printf("数の組の個数は%d個",(int)all_numbers.size());
return 0;
}


結果はa,b,c = 3, 4, 5
a,b,c = 4, 3, 5
a,b,c = 5, 12, 13
a,b,c = 6, 8, 10
a,b,c = 8, 6, 10
a,b,c = 8, 15, 17
a,b,c = 9, 12, 15
a,b,c = 12, 5, 13
a,b,c = 12, 9, 15
a,b,c = 12, 16, 20
a,b,c = 15, 8, 17
a,b,c = 16, 12, 20
数の組の個数は 12

A 回答 (2件)

中身見てないけど


for (a = 1; a <=20; a++) {
for (b = a+1; b <=20; b++) {
for (c = b+1; c <=20; c++) {
  :
見つかった、(a,b,c) と,(b,a,c)を登録する
  :
のほうが良くない?
    • good
    • 0

三平方の整数になるやつを求めるだけです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!