C/C++の宿題片付けます 133代目
■ このスレッドは過去ログ倉庫に格納されています
0360デフォルトの名無しさん
2009/12/22(火) 03:05:26そんなやたらと複雑にする必要性があるか?
#include<stdio.h>
int sub (int a) {
int x=0;
while (a) x=x*10 + a%10, a/=10;
return(x);
}
int main(void) {
int m,n;
while (scanf("%d",&n)==1) {
m=sub(n);
printf("反転した結果は");
printf("%d\n\n",m);
}
return(0);
}
でいいだろ。
>>348
再帰は場合によっては有用だが、関数呼び出しにはどうしてもオーバーヘッドが生まれる。
この場合は桁数が10桁程度しかないから再帰もその程度の回数で済むため速度的な問題は気にならないとは思うけど、ループ構文で済む所をわざわざ再帰にする必要性はないし、そういうことはしないように心掛けた方がいい。
上のsub()関数でも、数百万個の数値データとかに連続して呼び出したら違いが明確になるだろ。
■ このスレッドは過去ログ倉庫に格納されています