読者です 読者をやめる 読者になる 読者になる

個人的自由ノート

ふと自分が気になった事を書いてます

C++でHanafuda Shuffleを解く AIZU ONLINE JUDGE

C++でやると楽ですね。凄く短く書けました。 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(void) { vector<int> v; int n,r; int p,c; while(true) { cin >> n >> r; if(n == 0 && r == 0) break; v.clear(); for(int i = 0; i < n; i++) v.push</int></algorithm></vector></iostream>…

C言語でHanafuda Shuffleを解く AIZU ONLINE JUDGE

懐かしい問題ですね。サブミットしてみたらアクセプトされました。出来てました。C++とかJavaとかのライブラリ使ったら簡単にできるみたいですけど、なんとなくC言語でアルゴリズムを考えてみました。 #include <stdio.h> #include <string.h> int main(void) { int n,r; int p,</string.h></stdio.h>…

C言語で問題を解く

#include <stdio.h> int card_convr(unsigned x, int n, char d[]) { char dchar[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int digits = 0; int i; if(x == 0) d[digits++] = dchar[0]; else while(x) { printf("%d | %4d ··· %d\n", n, x, x % n); printf(" +--</stdio.h>…

C言語でカレンダー計算(閏年対応)

閏年に対応させても大体しかできなかったのですが、一応、1月と2月以外はできてます。 #include <stdio.h> int days[][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, }; int week(int y, int m, int</stdio.h>…

C言語で問題を解く

#include <time.h> #include <stdio.h> #include <stdlib.h> int maxof(const int a[], int n) { int i; int max = a[0]; for(i = 1; i < n; i++) if(a[i] > max) max = a[i]; return max; } int main(void) { int i; int *height; int number; height = calloc(number, sizeof(int)); s</stdlib.h></stdio.h></time.h>…

C言語で問題を解く

#include <stdio.h> void spira(int n) { int i,j,k; for(i = 0; i < n; i++) { for(j = i; j < n - 1; j++) { printf(" "); } for(k = 0; k < i * 2 + 1; k++) { printf("*"); } puts(""); } } int main(void) { spira(4); spira(8); return 0; } #include <stdio.h> void nrp</stdio.h></stdio.h>…

C言語で問題を解く

問題というか、自分で気になったことをプログラムにしてみました。カレンダー計算です。 #include <stdio.h> int yobi(int y, int m, int d) { return (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7; } int main(void) { char buf[1000]; int year,mon</stdio.h>…

C言語で問題を解く

#include <stdio.h> int main(void) { int a,b; printf("aの値 : "); scanf("%d", &a); while(1) { printf("bの値 : "); scanf("%d", &b); if(a >= b) printf("aより大きな値を入力せよ!\n"); else break; } printf("b - aは%dです。\n", b - a); return 0; } #includ</stdio.h>…

C言語で問題を解く

以下の本を本格的にやってます。 新・明解C言語によるアルゴリズムとデータ構造作者: 柴田望洋,辻亮介出版社/メーカー: SBクリエイティブ発売日: 2011/08/27メディア: 単行本購入: 3人 クリック: 37回この商品を含むブログ (7件) を見る データ構造とアルゴ…

Paizaの問題、解けた…。

いやー、難しいですね。本当はギブアップしてやめておこうと思ったんですけど、布団で横になってると、そのことばかり考えるようになってですね…。ry Paizaのスキルチェック問題、ランクC問題の初級編ですね。お菓子の分配についての問題です。解いてる人は5…

Paizaの問題、普通には解けないような。

多分、何か法則があると思うので、プログラミングの知識だけでは無理かも。ここでギブアップです。 #include <stdio.h> #include <stdlib.h> #include <string.h> int compare_int(const void *a, const void *b) { return *(int*)a - *(int*)b; } int main(void){ int no1, no2; scanf("%</string.h></stdlib.h></stdio.h>…

プログラミングの問題掲載サイト CodingBat等々

ネットにあるプログラミング問題掲載サイト、全部が全部悪いとはいいませんが、相手に解かせる気がないものばかりであまりしてこなかったのですが、先ほどCodingBatというウェブサイトがあるのを知り、ここで一つ問題を解いてみました。 Question 1 The para…

C++で問題を解く

C++11の機能を使いかけましたが、なんとかC++のSTL止まりに抑えておきました。以下のようになります。3つあります。 #include <iostream> #include <cstdlib> #include <ctime> #include <cstring> using namespace std; int main(void){ const int n = 7; int a[n]; memset(a, 0, sizeof(a)); s</cstring></ctime></cstdlib></iostream>…

慣習 C++で問題を解く

今回はちょっと苦戦しました。懐かしい感じの問題が出てきて少々考えこみました。それでもそれよりかは優しいわけですが、頭が衰えてるなぁ…。 #include <iostream> using namespace std; int main(void){ for(int i = 1; i < 10; i++){ for(int j = 1; j < 10; j++){ </iostream>…

先ほどの記事の追記 Q03

一つ前の記事の問題、自分で考えてやりましたが、やっぱり答えと似た解答になりました。それに少々難しいコーディングの方が分かりやすいです。 for i in 1..100 do flag = false for j in 1..100 do if i % j == 0 then flag = !flag end end if flag then …

数学パズルという参考書の問題をRubyで解いてみた Q03

問題 1-100までの番号が書かれた100枚のカードが順番に並べられています。最初、すべてのカードは裏返しの状態で置かれています。ある人が2番のカードから、1枚おきにカードを裏返していきます。すると、2,4,6…100番のカードが表を向くようになります。次に…

Go言語 Goツアーで演習問題その2

Goツアーでまたまた演習問題がありました。今回はスライスに関してです。問題文を見てもよくわからなかったので(簡潔すぎる)、ネットで検索してそれを参考にいじりました。 package main import "golang.org/x/tour/pic" func Pic(dx, dy int) [][]uint8 {…

Go言語 Goツアーで試し斬り

Goツアーを見ていると演習問題的なプログラムがあったので挑戦してみました。 A Tour of Go package main import ( "fmt" "math" ) func Sqrt(x float64) float64 { z := float64(1) z_pre := float64(1) dist := float64(1) fin := 0.000001 for i := 0; i …