LoginSignup
1
1

More than 1 year has passed since last update.

Ruby と Java と Crystal と C++ で解く プログラマーにしか解けない! #実行時間クイズ の1問目

Posted at

はじめに

プログラマーにしか解けない! #実行時間クイズ をやってみました。
FoH6ESorz79IWhk さん、kuizy さん、ありがとうございます。

また、実行環境としてAtCoder のコードテストをお借りしました。
AtCoder さん、ありがとうございます。

C++

c.c
#include <iostream>
using namespace std;

int ret[10009];

int main() {
  int N = 10000, sum = 0;
  for (int i = 1; i <= N; i++) {
    for (int j = 1; j <= N; j++) {
      ret[i] += i * j;
      ret[i] %= 10007;
    }
  }
  return 0;
}

元の問題より、出力部分を省略しています。

316 ms

Ruby

ruby.rb
n = 10000
sum = 0
ret = Array.new(10009, 0)
n.times do |i|
  n.times do |j|
    ret[i] += i * j
    ret[i] %= 10007
  end
end
9294 ms

Java

java.java
class Main {
    public static void main(String[] args) {
        int ret[] = new int[10009];
        int N = 10000, sum = 0;
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= N; j++) {
                ret[i] += i * j;
                ret[i] %= 10007;
            }
        }
    }
}
392 ms

Crystal

Crystal.cr
n = 10000
sum = 0
ret = Array.new(10009, 0)
n.times do |i|
  n.times do |j|
    ret[i] += i * j
    ret[i] %= 10007
  end
end
671 ms

まとめ

  • 遅い遅いと言われていますが、本当に遅いのを実感しました
  • 競技プログラミングでRubyを使用している方は、何かの修行なのかもしれませんね
1
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1