ぼるじょあがC/C++の宿題を片づけますYO! 67代目
■ このスレッドは過去ログ倉庫に格納されています
0425デフォルトの名無しさん
2007/01/21(日) 20:55:55#include <stdio.h>
void extended_gcd(int a, int b, int *x, int *y, int *g) {
int tx = 0, lastx = 1, ty = 1, lasty = 0, temp, quotient;
while (b != 0) {
temp = b; quotient = a / b; b = a % b; a = temp;
temp = tx; tx = lastx - quotient * tx; lastx = temp;
temp = ty; ty = lasty - quotient * ty; lasty = temp;
}
*x = lastx; *y = lasty; *g = a;
}
int main(void) {
int i, a[] = {88, 84, 87, 84, 92, 78, 28, 90, 96, 54}, b[] = {70, 86, 81, 74, 96, 63, 50, 35, 14, 69}, x, y, g;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
extended_gcd(a[i], b[i], &x, &y, &g);
printf("%d*%d+%d*%d=%d\n", a[i], x, b[i], y, g);
}
return 0;
}
【実行例】
88*4+70*-5=2
84*-1+86*1=2
87*-13+81*14=3
84*15+74*-17=2
92*-1+96*1=4
78*-4+63*5=3
28*9+50*-5=2
90*2+35*-5=5
96*-1+14*7=2
54*9+69*-7=3
■ このスレッドは過去ログ倉庫に格納されています