C/C++の宿題を片付けます 112代目
■ このスレッドは過去ログ倉庫に格納されています
0396デフォルトの名無しさん
2008/07/10(木) 01:10:33int gcm(int u, int v)
{
if(u==v) return u;
if(u==1||v==1) return 1;
switch((u&1)<<1 | v & 1) {
case 0: return 2*gcm(u/2, v/2);
case 1: return gcm(u/2, v);
case 2: return gcm(u, v/2);
case 3: return u > v ? gcm((u-v)/2, v) : gcm((v-u)/2, u);
}
}
int main(void)
{
int u, v;
printf("input u:");
scanf("%d", &u);
printf("input v:");
scanf("%d", &v);
printf("%d", gcm(u, v));
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています