1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
908 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 00:53:58 ] [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク):正または負の八桁以内の整数を入力し、次の変換法則にしたがって 文字列に変換して、結果を出力するプログラム *変換規則 各桁の数を半角の数字に変換し、文字型配列に右詰め(最下位桁の数字を配列要素[11]) で格納し、3桁ごとに","を挿入して、最上位桁の文字の前に'+'または'-'の符号を付加する。 符号を格納した配列要素より左の要素には空白が格納されている。また、配列要素[11]には ヌル文字が格納されている。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: bcc55 [3.3] 言語: C [5]ポインタはまだ習っていないです どうやるかさっぱり分かりません・・・ 特に3桁ごとに、を挿入したり最後に+や-を付ける所で思考が止まりました 長くて読みにくいと思いますがどうかよろしくお願いします。
909 名前:775 mailto:sage [2008/10/29(水) 01:01:47 ] お願いします。本当にさっぱりわからないので… 誤字修正しました [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイルを参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_auxに含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
910 名前:デフォルトの名無しさん [2008/10/29(水) 01:29:16 ] >>898 は、多少一般化して、任意の一変数多項式関数の最小値にしたらいいだろう
911 名前:デフォルトの名無しさん [2008/10/29(水) 01:42:04 ] [1] 授業単元: プログラミング基礎 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7886.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月30日 23:59まで よろしくおねがいします
912 名前:デフォルトの名無しさん [2008/10/29(水) 02:10:44 ] >>911 割れるだけ割る。 素因数分解。 ユークリッドの互除法。 などがある。 ソースはユークリッドの互除法。 3つの数の最大公約数は、2つずつの最大公約数を求めて、2つの最大公約数を求めればいいだろう
913 名前:デフォルトの名無しさん [2008/10/29(水) 02:14:38 ] 3つのはこれでいいのでは? int gcd3(x, y, z){ return gcd( gcd(x,y), gcd(y,z)); }
914 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 02:50:51 ] int gcd3(x, y, z){ return gcd( gcd(x,y), z); } で十分じゃない?
915 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 13:35:50 ] >>906 ,907 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7887.txt と思ったらタイムオーバー
916 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 14:34:52 ] 「入力された任意桁数(30桁以下)の整数に対し、各位の値を、配列を用意してそれに1つづつ格納する」のはどのようにするとスマートでしょうか・・・??
917 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 14:48:03 ] >>916 スマートとか考えると後で意味不明のコーディングになる forループでいいだろ
918 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 14:56:40 ] 自分でやってみましたが、powを使うとよく分からないことに・・・(泣) 言い方を変えて、<math.h>を極力使わないようにしたいです・・・
919 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:05:09 ] for(i=0; i<30; i++){ arr[i] = n%10; n /= 10; }
920 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:17:13 ] こんなに小さいプログラムでいいんですね(^^; 3時間かけて諦めた自分は何なんだろうorz
921 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:21:05 ] 30桁だから文字列だろ #include <stdio.h> int main(void) { char num[] = "123456789012345678901234567890"; int arr[30]; int i; int c = strlen(num); for (i = 0; i < c; i++) { arr[c - i - 1] = num[i] - '0'; } for (i = 0; i < c; i++) { printf("%d ", arr[i]); } return 0; }
922 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:23:21 ] >>921 はいエラー
923 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:26:07 ] いちいちstring.h使わんでも forで0になるまで回せばいいじゃん。 >>919 だと任意桁数ってのに合わないからね
924 名前:916 mailto:sage [2008/10/29(水) 16:01:52 ] >>921 やはり>>916 の書き方が悪かったです…。 任意桁数の整数は、入力されたものを使うことになります。
925 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:08:16 ] >>908 www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_fe_pm_qs.pdf これの問6とほぼ一緒な感じか? a,b,cに入るのは a: /= 10 b: i % 3 c: i < j; i++, j-- 正の整数に+をつけるなら、 if(minus != 0){ str[j++] = '-'; } この付近に少しコードを付け足せばできると思う。
926 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:21:20 ] >>925 すまん、勘違いした。 右詰めにするのか…。
927 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:41:54 ] [1] 授業単元: プログラミング演習 [2] 問題文:1から50までの整数のうち,素数であるものを全て書き出すプログラムを,for文を用いて作成. 出力結果は次のように横に並ぶようにする. 1 3 5 7 11 13 17 19 23 29 ・・・・ [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 11月4日 16:00まで [5] その他の制限:2重ループを用いる。nの素数判断は,2〜n-1までの数で順にわり算して,全ての数で割り切れなければnは素数。 for文までしか習ってないのでそのあたりを考慮して頂けたらありがたいです。よろしくお願いします。
928 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 18:47:04 ] >>927 #include <stdio.h> int main() { int i, j; for (i = 1; i <= 50; ++i) { for (j = 2; j <= i; ++j) { if (j == i) { printf("%d ", i); } else if (i % j == 0) { break; } } } putchar('\n'); return 0; }
929 名前:928 mailto:sage [2008/10/29(水) 18:49:28 ] int main() { int i, j; for (i = 1; i <= 50; ++i) { for (j = 2; j <= i - 1; ++j) { if (i % j == 0) { break; } } if (j == i) { printf("%d ", i); } } putchar('\n'); return 0; } すいませんこっちのほうがま真っ当です
930 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 19:09:55 ] [1] 授業単元: プログラミング基礎 [2] 問題文: (以下の問題は、 算数にチャレンジ!! の中の 第559回問題 からの引用。) 1〜10の数が書かれたカードが1枚ずつ、全部で10枚あります。 今、これらのカードを並べ、隣り合った数の差を左から次々に加えていくことにします。例えば、 2,5,6,8,1,4,3,9,7,10 と並べたならば、 3+1+2+7+3+1+6+2+3=28 ということになります。 では、この計算結果が最も大きくなるようにカードを並べると、結果はいくらになるでしょうか。(問題終) 元の問題は算数の問題なので論理で答えを出すものだが、ここではプログラムを書いてその最大値を求めて欲しい。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月14日まで よろしくおねがいします
931 名前:デフォルトの名無しさん [2008/10/29(水) 19:15:13 ] 大きい数字が中心で1や2は端がいいな
932 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 19:53:24 ] 一般化して100個でも出来るのがいいな
933 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:12:11 ] プログラムって総当たりってこと? 結構時間かかりそうとおもったけど、10桁くらいなら余裕か…。
934 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:19:50 ] >>933 おそらく総当りだと思います
935 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:09:12 ] >>930 100個は無理。 #include<stdio.h> #include<string.h> #define M 10 unsigned int kaijyo(int k){unsigned int s=1; for(;k>0;k--)s*=k; return s;} void retuprt(unsigned int *x){for(int n=0;n<M;n++)printf("%d ",x[n]);} unsigned int sanowa(unsigned int *x){unsigned int s=0,n; for(n=0;n<M-1;n++)s+=x[n+1]>x[n]?x[n+1]-x[n]:x[n]>x[n+1];return s;} main(){ unsigned int i,j,k; unsigned int orgnum[M],num[M],jretu[M]; for(i=0; i<M; i++) orgnum[i]=i+1; int max=0; unsigned int maxretu[M]; for(k=0;k<kaijyo(M);k++){ memcpy(num,orgnum,4*M); int N=k; for(i=M;i>=1;i--) { int n=N % i; jretu[i-1]=num[n]; for(j=n;j<i-1;j++) num[j]=num[j+1]; N/=i;} i=sanowa(jretu); if(max<i){max=i;memcpy(maxretu,jretu,4*M);} } retuprt(maxretu); printf(" max=%d\n",max); }
936 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:14:43 ] 最大値を与える列を求める #include<stdio.h> #include<string.h> #define M 10 void retuprt(unsigned int *x){for(int n=0;n<M;n++)printf("%d ",x[n]);} unsigned int sanowa(unsigned int *x){unsigned int s=0,n; for(n=0;n<M-1;n++)s+=x[n+1]>x[n]?x[n+1]-x[n]:x[n]>x[n+1];return s;} main(){ unsigned int i,j,k; unsigned int orgnum[M],num[M],jretu[M]; for(i=0; i<M; i++) orgnum[i]=i+1; for(k=0;k<3628800;k++){ memcpy(num,orgnum,4*M); int N=k; for(i=M;i>=1;i--) { int n=N % i; jretu[i-1]=num[n]; for(j=n;j<i-1;j++) num[j]=num[j+1]; N/=i;} if(sanowa(jretu)==29){retuprt(jretu);printf("\n");} }}
937 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:18:07 ] プ [4] 期限: 10月14日まで
938 名前:935 mailto:sage [2008/10/29(水) 21:21:55 ] 間違えた
939 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:23:28 ] 改めて>>877 の問2)からどなたかお願いします。 問2)連結リストの先頭の次に、セルを一つ追加する関数を作成する。セルのelement メンバの値は0 でよい。 つまり、cell1 → cell2 → cell3 → NULL であるときに、この関数を1 回呼ぶと、 cell1 → (新しいセル) → cell2 → cell3 → NULL となるようにすればいい。 問3)連結リストの先頭の前に、セルを一つ追加する関数を作成せよ。セルのelement メンバの値は0 でよい。 つまり、cell1 → cell2 → cell3 → NULL であるときに、この関数を1 回呼ぶと、 (新しいセル) → cell1 → cell2 → cell3 → NULL となるようにすればいい。 自分なりに問2を進めてみたのですがvoid add_cell_secondをどう書いたらいいのでしょうか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7888.txt
940 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:24:28 ] これって解が214176個もあるぞ。 問題として解答するなら30にならないことも示す必要あるな。
941 名前:940 mailto:sage [2008/10/29(水) 21:37:08 ] まちがえた
942 名前:940 mailto:sage [2008/10/29(水) 21:40:22 ] 11まではなんとかもとまるが #include<stdio.h> #include<string.h> #include<vector> using namespace std; unsigned int kaijyo(int k){unsigned int s=1; for(;k>0;k--)s*=k; return s;} void retuprt(vector<unsigned char> &x){for(int n=0;n<x.size();n++)printf("%d ",x[n]);} unsigned int sanowa(vector<unsigned char> &x){unsigned int s=0,n; for(n=0;n<x.size()-1;n++)s+=x[n+1]>x[n]?x[n+1]-x[n]:x[n]-x[n+1];return s;} main(){ unsigned int M,K; unsigned int i,j,k; vector<unsigned char> orgnum,num,jretu; for(M=2; M<20; M++) { orgnum.resize(M),num.resize(M),jretu.resize(M); for(i=0; i<M; i++) orgnum[i]=i+1; int max=0;K=kaijyo(M); for(k=0;k<K;k++){ memcpy(&num[0],&orgnum[0],M); int N=k; for(i=M;i>=1;i--) { int n=N % i; jretu[i-1]=num[n]; for(j=n;j<i-1;j++) num[j]=num[j+1]; N/=i;} i=sanowa(jretu); if(max<i)max=i; } printf("M=%d max=%d\n",M,max); }}
943 名前:930 mailto:sage [2008/10/29(水) 21:42:17 ] >>935-936 ありがとうございました
944 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:42:45 ] >>939 func(cell1)で次と前に新しいのを挿入する。 それぞれ先頭が帰ってくるが、こういうのでいいんだろうか。 struct cell *insert_next(struct cell *target) { struct cell *c1; c1=(struct cell *) calloc(1, sizeof(struct cell)); c1->next=target->next; target->next=c1; return target; } struct cell *insert_prev(struct cell *target) { struct cell *c1; c1=(struct cell *) calloc(1, sizeof(struct cell)); c1->next=target; return c1; }
945 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:46:33 ] >>775 です。 さっぱりわからないので少しだけでもお願いします。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイルを参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_auxに含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
946 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:47:57 ] #include<stdio.h> #include<string.h> #include<vector> using namespace std; unsigned int kaijyo(int k){unsigned int s=1; for(;k>0;k--)s*=k; return s;} void retuprt(vector<unsigned char> &x){printf("( ");for(int n=0;n<x.size();n++)printf("%d ",x[n]);printf(")");} unsigned int sanowa(vector<unsigned char> &x){unsigned int s=0,n; for(n=0;n<x.size()-1;n++)s+=x[n+1]>x[n]?x[n+1]-x[n]:x[n]-x[n+1];return s;} main(){ unsigned int M,K; unsigned int i,j,k; vector<unsigned char> orgnum,num,jretu,maxretu; for(M=2; M<20; M++) { orgnum.resize(M);num.resize(M);jretu.resize(M);maxretu.resize(M); for(i=0; i<M; i++) orgnum[i]=i+1; int max=0;K=kaijyo(M); for(k=0;k<K;k++){ memcpy(&num[0],&orgnum[0],M); int N=k; for(i=M;i>=1;i--) { int n=N % i; jretu[i-1]=num[n]; for(j=n;j<i-1;j++) num[j]=num[j+1]; N/=i;} i=sanowa(jretu); if(max<i){max=i;memcpy(&maxretu[0],&jretu[0],M);} } printf("\nM=%d max=%d ",M,max); retuprt(maxretu); }}
947 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:49:43 ] >>943 >>935 は間違えているので、このように変更するように x[n+1]>x[n]?x[n+1]-x[n]:x[n]-x[n+1];
948 名前:775 ◆00BY157eo6 mailto:sage [2008/10/29(水) 22:06:50 ] >>775 です。 さっぱりわからないので少しだけでもお願いします。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイルを参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_auxに含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2008年11月6日まで] トリップつけました。
949 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 22:08:19 ] >>929 ありがとうございました
950 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 22:09:28 ] >>948 まずはテキストでうp
951 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 22:10:10 ] >>944 ありがとう。そのinsert_nextとprevとfunc(cell1)を>>939 のどこに入れたらいいんでしょうか?
952 名前:775 ◆00BY157eo6 mailto:sage [2008/10/29(水) 22:17:02 ] >>950 テキストでファイル内容をうpしました。 ただ、できれば直接ファイルを参照して欲しいのですが… [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイル(内容は) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7890.txt を参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_aux(内容は) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7889.txt に含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
953 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 22:34:57 ] >>952 もう一度行列を復習してから書き込んでくれ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7890.txt の行列って正方行列じゃないだろ
954 名前:775 ◆00BY157eo6 mailto:sage [2008/10/29(水) 22:42:52 ] >>953 あ、そうですね… すいませんでした 一度ひっこみます
955 名前:775 ◆00BY157eo6 mailto:sage [2008/10/29(水) 22:50:53 ] 修正しました。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): LU分解法を用いて、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip のmatrix2.datファイル(内容は下のtxtにまとめました) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7892.txt を参照して、 その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。 AX=I(Iは単位行列)となることをしめしてください、 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip に含まれるmat_aux(内容は) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7889.txt に含まれる補助関数を使ってください。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2008年11月6日まで]
956 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:08:44 ] >>930 面白い問題なので俺もやってみた。コマンドライン引数で要素数指定。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7894.txt N=10 Max=49( 1152件) time 0:00.62 N=11 Max=59(11520件) time 0:06.03 N=12 Max=71(28800件) time 1:13.19 N=13 おわらねぇ……てか落ちた! CPU Q6600 2.4GHz OS Win Vista Ulti 32bit
957 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:11:19 ] なんか atexit する場所がへんだった。
958 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:40:43 ] N=2n+1のときの解はたぶん、 n+2, n, 2n+1, n-1, 2n, n-2, 2n-1, n-3,…,n+3, 1, n+1 だな。 N=2nのときも似たようなもん。証明は知らない。
959 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:44:30 ] N=2n+3とすると n+3, n+1, N, n, N-1, n-1, N-2, n-2,…,n+4, 1, n+2 となり簡明か
960 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 01:01:09 ] N=2nのときmaxは、2*n*n-1 N=2n+1のときmaxは、2*n*n+2n-1 だな。証明は知らない。
961 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 01:36:04 ] >>930 面白い問題なのでオレも考えてみた。 で、解くためのアルゴリズムを見つけた。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7895.txt 是非とも等角フォントで。 差の表を用いて考えれば 全部の数列の差を試さなくてすむし、一発で出来る
962 名前:930 mailto:sage [2008/10/30(木) 01:44:42 ] >>961 絵はどうでもいいからCで書けよカス
963 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 01:56:47 ] >>962 偽者だというのは分かるが、お前がキモイ・・・