ふみをチャレンジ[5]
夜型の生活を1日で改められるわけもなく、お昼で断念して帰ってきた。無駄に体がだるい。
問題
0004: Simultaneous Equation - AIZU ONLINE JUDGE
これだけ妙に正答率が低いという、解く前から不安になるね。
答案
C
#include <stdio.h> int main() { double a, b, c, d, e, f, x, y; while(scanf("%lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f) != EOF) { x = (c*e - b*f) / (a*e - b*d) + 0.0; y = (a*f - d*c) / (a*e - b*d) + 0.0; printf("%.3lf %.3lf\n", x, y); } return 0; }
ふみをチャレンジ[4]
三日坊主打破。ロックマンエグゼ2もついに最終話に突入して…ちょっとゲームしすぎかな。明日から大学だというのに。朝起きられるかなあ…
答案
C
#include <stdio.h> int main() { int n, a, b, c; scanf("%d", &n); while(n > 0) { scanf("%d %d %d", &a, &b, &c); a *= a; b *= b; c *= c; if(a == b + c || b == c + a || c == a + b) { printf("YES\n"); } else { printf("NO\n"); } n--; } return 0; }
反省
a2 + b2 = c2を利用すればいいとはすぐ分かったけど、斜辺をどうやって判定しようか…と考えてたら、なるほど、全部ORで繋いじゃったらいいんだ。ソートしたり最大の値を探すことも考えたけど、この方法が一番スマートだね。
ふみをチャレンジ[3]
とりあえず3日間やって来れた。三日坊主打破まであと1日。でも問題は明後日以降かな、大学始まるし。実はもう始まってるんだけど。ロックマンエグゼ2のハードモードが意外と難しい…
あと、ですます調やめた。
問題
0002: Digit Number - AIZU ONLINE JUDGE
桁数を求めるには、
figure = (int)log10( variable ) + 1
みたいにすればいいってここに書いてあったから、それを利用した。
答案
C
#include <stdio.h> #include <math.h> int main() { int a, b, sum, digit; while(scanf("%d %d", &a, &b) != EOF) { sum = a + b; digit = (int)log10(sum) + 1; printf("%d\n", digit); } return 0; }
反省
問題分の「入力の終わりまで処理して下さい」の意味がわからなくて、whileを無限ループにして提出したらTime Limit Exceededだと言われた。AOJのWEB Boardで確認すると、
while(scanf("%d", &n) != EOF) { /* ここに処理 */ }
こういうことだったそうだ。なるほど。
後ろの方の問題をチラッと見たら、かなり難しそうなんだけど大丈夫かな…
ふみをチャレンジ[2]
ふみをチャレンジ2日目。せっかくなのでAOJに登録してみました。機械判定してくれるので便利ですね。foooomioが僕なので、見かけたらどうぞ笑ってやって下さい。
答案
C
#include <stdio.h> int main() { int a[10], i, num1, num2, num3; num1 = num2 = num3 = 0; for(i = 0; i < 10; i++) { scanf("%d", &a[i]); if(num1 <= a[i]) { num3 = num2; num2 = num1; num1 = a[i]; } else if(num2 <= a[i]) { num3 = num2; num2 = a[i]; } else if(num3 <= a[i]) { num3 = a[i]; } } printf("%d\n%d\n%d\n", num1, num2, num3); return 0; }
反省
ソートした方が簡単かと思った(Javaで作ったときはそうした)けど、比較関数書かないといけなかったりするそうなので、単純に上位3つだけを求めることにした。なんか他に方法ないかなあ。
ふみをチャレンジ[1]
あけましておめでとうございます。
「継続は力なり」ということで、毎日ひとつ簡単なプログラムを組むことにしました。Twitterを眺めていると、AIZU ONLINE JUDGE: Programming Challengeなるものがあるそうなので、ここの問題をまずは解いていこうと思います。
問題
0000: QQ - AIZU ONLINE JUDGE
九九を出力できればいいみたいです。
答案
C
#include <stdio.h> int main() { int i, j; for(i = 1; i <= 9; i++) { for(j = 1; j <= 9; j++) { printf("%dx%d=%d\n", i, j, i*j); } } return 0; } /* 結果 1x1=1 1x2=2 . . (省略) . . 9x8=72 9x9=81 */
Java
class QQ { public static void main(String[] args) { for(int i = 1; i <= 9; i++) { for(int j = 1; j <= 9; j++) { System.out.println(i+"x"+j+"="+(i*j)); } } } } // 結果 // (Cと同じ)