C言語なら、オレに聞け! <6>
■ このスレッドは過去ログ倉庫に格納されています
0647デフォルトの名無しさん
NGNGにある、ピタゴラスの計算を最速で実行するアルゴリズムの答えが
知りたいです。とりあえず、自分の考えたのは次のようなやつ:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
/* 最大の数 */
int maxnum;
int a, b;
int a2, b2;
double c, c2;
if (argc != 2) {
printf("usage: pythago num\n");
return 1;
}
maxnum = atoi(argv[1]);
for (a = maxnum; a > 0; --a) {
for (b = a - 1; b > 0; --b) {
a2 = a*a;
b2 = b*b;
c2 = a2 - b2;
if (c2 < 0 || c2 > b2)
continue;
c = sqrt(c2);
if (c - (int)c == 0)
printf("%d %d %d\n", b, (int)c, a);
}
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています