人は道路を横断しなければならず、ステップごとにエネルギーを得るか、またはいくらか失う(この情報は配列として提供されます)。彼がどのレベルでもエネルギーが1以上であるように、エネルギーの最小量を見つけてください。男に必要な最小量を見つける
しかし、以下のプログラムは常に数値ではなく "エラー"を表示します。あなたが配列の値は簡単ではないものであるならば、それが終了呼び出すため
#include<stdio.h>
#include<limits.h>
int main(){
int a[]={10,20,20};
int n = sizeof(a)/sizeof(a[0]);
int ans = calldistance(a,n);
if(ans==-1)
printf("error");
else
printf("%d",ans);
return 0;
}
int calldistance(int a[],int n){
int i,min=INT_MAX;
for(i=0;i<n;i++){
min+=a[i];
if(min<1) return -1;
else continue;
}
return min;
}
これは古典的なバックトラッキングの問題を感じます。あなたのプログラムは無効で、エラーが発生するはずです。あなたの実際のコードですか?それとも、私たちがあなたのためにそれを解決することを望んで一緒に何かを叩きましたか? – StoryTeller
@StoryTeller再帰は必要ありません。配列を1回だけ通過します。 (私は間違っているかもしれません...) – bolov
誰か_stared_タイトルで、それとも私だけですか? :D –