次のコードの
#!/usr/bin/ruby -w
nums = File::read("euler18nums.txt"); #opens file with number array inside.
parts = nums.split(' '); #save it into instance of an array.
t = [] #dimension one of the array of arrays.
s = [] #dimension two.
j=0 #iteration variable.
k=0 #iteration variable.
n=1 #iteration variable.
parts.collect do |i| #itterates through the array that i have my data in.
s[k] = i.to_i #converts strings to int and save into 2nd dimension.
k+=1
if k == n #number of itterations increase by one every time function is called.
t[j] = s
n+=1 #saves second dimension of array into the first,-
k=0 #-and this is where my problem is because it saves into and overwrites-
test=0 #-of the array that i have saved.
while test != n #this is a test statement to print out the array so far-
print t[test], "\n" #-every time a new array is saved into it
test+=1
end
j+=1
end
end
print t #prints out at the end, this is always just the last-
#-array printed out fifteen times
s を t[j] に保存すると、これまでに作成された t のすべてのインスタンスが保存され、上書きされます。Ruby 配列を誤解しているt[5] = s
のでしょうt[4]
かt[3]
。Rubyが特定のインスタンスの配列のみを保存する方法はありますか、それとも戻る必要がありますC++
か? このためのtxtファイルは
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23