
入力された数列がフィボナッチ数列であるかどうかを調べるプログラム fibocheck.c を作成する.
プログラムはまずキーボードから整数 n を読み取る.この n はその次に入力される数列の長さ(項の数)を表しており, 2≦n≦30 と仮定してよい.次にプログラムは入力タブから n 個の整数を読み取る.この n 個の整数が数列の第1項から第n項までの値である.最後にプログラムは,入力された数列がフィボナッチ数列であるか否かを判定し,その結果を出力する.
なおこの課題は,入力された数列を格納するために配列を用い,この配列を関数 int checkseries() に渡すという形で実装すること.関数 checkseries は,受け取った数列がフィボナッチ数列であれば 0 を返し,フィボナッチ数列でなければフィボナッチのルール an=an-1+an-2 を満たさない最初の an を返すものとする.
全然わからないので教えてほしいです。
No.1ベストアンサー
- 回答日時:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static char buffer[2048];
char* readline(void){
fgets(buffer, 2048, stdin);
char* cpy = malloc(strlen(buffer) + 1);
strcpy(cpy, buffer);
cpy[strlen(cpy) - 1] = '\0';
return cpy;
}
int checkseries(int* series, int size) {
int i;
for (i = 2; i < size; i++) {
if (series[i-2] + series[i-1] != series[i]) {
return series[i];
}
}
return 0;
}
int main(void) {
int n, i, *series;
while (1) {
n = atoi(readline());
if (n < 2 || n > 30) {
continue;
} else {
break;
}
}
series = (int*)malloc(sizeof(int) * n);
for (i = 0; i < n; i++) {
series[i] = atoi(readline());
}
printf("%d\n", checkseries(series, n));
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAでをA列に第0〜19項のフィボナッチ数列を代入するプログラムを作りたいです。 どな 2 2022/11/10 10:26
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 数学 上三角行列のn乗の証明 2 2023/07/23 21:45
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- 生物学 フィボナッチ数列が黄金比に限りなく近付いていく 4 2023/04/18 04:22
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Ruby プログラミング 3 2023/06/09 14:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
(int *)の意味
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
C++でvectorにテキストファイル...
-
int型の変数値をバイト列として...
-
数字列を3桁ごとにカンマで区切...
-
「{ } で囲むだけ」は正しい?
-
C言語初心者です、、、お助けく...
-
C言語
-
ラップ関数とはどんなものですか?
-
(マルチスレッド)_beginthrea...
-
C言語でDxlibを使って3x3の奇数...
-
C言語について教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
std::set<int> で、ある値が何...
-
PowerShellがうまくいかない
-
(int *)の意味
-
CStringの配列要素を関数で受け...
-
ColorをRGBで指定する方法
-
「{ } で囲むだけ」は正しい?
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
read関数をノンブロッキングで...
-
(マルチスレッド)_beginthrea...
-
int16_t の _t は何?
おすすめ情報