中学3年生です。まだ、C言語初心者なのですが日本情報オリンピックの予選に出場しようかなと考えています。今年の12月16日に予選があるのですが、その過去問(去年の予選に出題された問題)を下のリンクに掲載されています。
■そこで、質問なのですがこの問題は簡単なのでしょうか。
まだ、C言語初心者で覚えなきゃならないこともまだまだたくさんあります。しかし、後3ヶ月あるので一生懸命がんばりたいと思います。
■この問題は、3ヶ月特訓してすいすいと解ける問題でしょうか。教えてください。
http://www.ioi-jp.org/joi/2006/2007-yo-prob_and_ …
No.5ベストアンサー
- 回答日時:
★中学3年生(15歳)ではないので…。
私が C 言語を始めたのは 18 歳の頃でした。→高校を卒業後。
>■そこで、質問なのですがこの問題は簡単なのでしょうか。
↑
過去の自分を振り返り(C言語を始めたばかりの頃)で考えると問題1~3までは解ける。
でも問題4~6は無理だったかもしれない。基本的に最初は C 言語を嫌々でやっていたので。
■この問題は、3ヶ月特訓してすいすいと解ける問題でしょうか。
↑
個人差があるので…。→嫌々でやると進まない。当たり前だけど。
次の点をお勉強してみたらどうでしょうか。
問題1…ファイル入力、if文、printf文を理解していれば出来る。
問題2…ファイル入力、配列、ループ文を理解していれば出来る。
問題3…文字コード、文字定数、文字列を理解していれば出来る。
問題4…問題の意味を理解、アルゴリズムを解くコツを見つけないと難しい。
問題5…こちらも問題の意味を理解、数学の組み合わせなどを復習しないと難しい。
問題6…同上。
・問題を読んでみて問題1~3、問題4~6では解ける人と解けない人に大きく分かれそうですね。
問題4~6を解くには数学の組み合わせを人間ではなくてプログラムで解くためにはどのように
記述すればよいのかのコツを見つけるしかないでしょう。類似問題をたくさん解いたり、自分で
類似問題を作って解いていくのが一番いいと思います。C 言語の文法とはまた別のアルゴリズムの
お話になりますから。
・アルゴリズムを解くには基本の変数、配列、if、else、for、while、switch を完全に理解して
使いこなせる準備をする必要があります。そこで基本を1ヶ月間みっちりと学習します。
その後に類似問題を自分で作ったり、友達に作ってもらったりしてアルゴリズムを解けるように
特訓します。例え解けなくても『考える』ことが重要です。またずっと同じ問題を考えるのではなくて
途中で別の問題も解きます。このときに別の考えで問題を解く事になると思いますのでそのときに
前の解けなかった問題のヒントがひらめくかもしれない。
つまり、問題を解くために慣れるわけ。→数学(組み合わせなど)と一緒に問題なれする事。
・以上。基本からステップアップを計画的に行いましょう。
No.4
- 回答日時:
問題をみましたが、
1.まず数学的に解き方を考えること。
2.それをC言語で表現すること。
3.そのプログラムが正しく動作すること。
の3段階を追う必要があります。
C言語としては、特に強化しておいたほうがよいポイントとして、ファイルの入出力、配列、データ構造について勉強しておくとよいかもしれません。(他は、随時覚えられるはずなので。)
この手の問題は、プログラミングができることは前提となっていますが、数学の問題と同じで、読解力も必要となるでしょうから、高校入試レベルの問題をC言語でやってみるのも面白いかもしれません。
No.3
- 回答日時:
一応プログラマしてます。
(かなり似非レベルですが^-^;)問1~3、5は適当に読んでたら解けました。(頭の中でですが)
問4、6は自分は数学知識が乏しいのでちと勉強やり直さないと解けません。(^-^;)
C言語のレベルとしては基礎的な構文(if,for,while,配列)が分かっていれば
解けるので簡単かと。(ポインタとか構造体は別に使わなくても良いし・・・)
僕は自分の頭で理解出来るものは大体C言語に置きかえれるんですが、
中学・高校時代と全く勉強しなかったので数学が理解出来ておりません。
Rhinocerさんが問題と入力を見て、出力の値を数学で導き出せるのであれば
あとはC言語の基礎を勉強するだけでコーディングは簡単だと思います。
C言語の基礎的な構文は1ヶ月(1時間/日)あればまぁ理解出来るかなと・・・
ではでは、頑張ってください。(^-^)
No.2
- 回答日時:
先ほどの回答をした者です。
高校受験の心配をしなくてよいのは大きなメリットですね。
コンピュータで問題を解く際、いきなりC言語のコードを書く前に、
まず手作業でやってみることで、コンピュータに解かせる際の
一般的な手順が見えてくるかもしれません。
答えの数が何百とおりも何千とおりもありそうだと、それだけで
イヤになってしまいますが、今回の場合は、幸いなことに
いちばん骨のありそうな問題6でもおよそ10とおりくらいに
収まりそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングVBAについてです...
-
Windows Media Playerを開くと...
-
本格的なGUIを作るのにおすすめ...
-
パソコンを新しくしたらiPodが...
-
iCloudフォトライブラリ内の画...
-
C++ 標準ライブラリの実際の中...
-
iTunesの同期、別のパソコンで...
-
まったくのソフト開発初心者で...
-
c言語の標準cライブラリのみで...
-
システムコールと標準ライブラ...
-
色混ぜのアルゴリズム
-
C# EXCELセルの入力規則設定に...
-
VB.NET とドットNET(.NET...
-
VB と VC++ と VC#の違いは?
-
VBを使った自作の逆FFT
-
オブジェクト指向、理解しやすい?
-
MPWでCをするには?
-
outp関数について
-
Google ColaboでGUI作成
-
boostのアンインストールについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
麻雀ソフトのソースコード
-
下記のアルゴリズムの問題がよ...
-
検索アルゴリズム
-
C言語を学ぶには・・・
-
C言語を勉強するサイトを教えて...
-
秘密分散について
-
C#のゲーム作成
-
Excelで乱数発生のアルゴリズム
-
作りたいソフトのお手本がない
-
C言語の上級者を目指したい。
-
決定木学習について
-
入門より少し進んだC言語の勉強...
-
情報系の専門学校に入学したの...
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
iCloudフォトライブラリ内の画...
-
python urlopen error について...
-
String^の^自体が何を意味して...
-
本格的なGUIを作るのにおすすめ...
-
VB.NET とドットNET(.NET...
おすすめ情報