###実現したいこと
int型の記憶できる上限を超えると負の値として記憶されるという性質を利用して、はじめて負の値になったときが何番目なのか表示したい。
###問題点
実行結果がおかしくなる。また、はじめて負の値になるのは何番目なのか求め方がわからない
C
1/*実行結果 2フィボナッチ数の計算を始めます 3*/ 4
###コード
C
1#include<stdio.h> 2int main(void) 3{ 4 int N,f[N+1],i,ans; 5 printf("フィボナッチ数の計算を始めます\n"); 6 for(i=2;i<=10000;i++){ 7 f[i]=f[i-1]+f[i-2]; 8 if(f[i]<0){ 9 ans=i; 10 break; 11 } 12 } 13 printf("%d番目のフィボナッチ数がはじめて負の数になりました\n",ans); 14 printf("何番目のフィボナッチ数が知りたいですか "); 15 scanf("%d",&N); 16 f[1]=1; 17 f[0]=0; 18 for(i=2;i<=N;i++){ 19 f[i]=f[i-1]+f[i-2]; 20 } 21 printf("f[%d]=%d です",N,f[N]); 22 return 0; 23}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。