Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion 01-hello.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
print "请输入你的名字,然后按 Enter: "
your_name = gets


# ...

puts "(请替换成最后的答案)"
puts "Hello , applesilva "
5 changes: 2 additions & 3 deletions 02-variable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,5 @@

# ...

puts "a 应该是 2,现在是 #{a}"
puts "b 应该是 1,现在是 #{b}"

puts "a 现在是 #{b}"
puts "b 现在是 #{a}"
3 changes: 2 additions & 1 deletion 03-triangle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
print "请输入直角三角形的底边,然后按 Enter: "
b = gets

triangle_area = a.to_f * b.to_f / 2
# .....

puts "直角三角形的面积是: _________"
puts "直角三角形的面积是: #{triangle_area}"
6 changes: 4 additions & 2 deletions 04-pizzas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
print "请输入有多少人要吃,然后按 Enter: "
people = gets

pizzas_per_person = (pizzas.to_i / people.to_i).floor
pizzas_left = pizzas.to_i % people.to_i
# .....

puts "每人可分得几片: _________ 片"
puts "还剩下几片: _________ 片"
puts "每人可分得几片: #{pizzas_per_person}片"
puts "还剩下几片: #{pizzas_left}片"
29 changes: 20 additions & 9 deletions 05-bmi.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
# 题目: 输入体重和身高,输出身体质量指数(BMI)和建议
# BMI 公式为 bmi = ( 体重 / (身高x身高) ),单位是公斤和米
# 如果 BMI < 18.5,显示过轻
# 如果 BMI >= 24,显示过重
# 如果 BMI 介于 18.5 ~ 24,显示正常
# 题目: 輸入體重和身高,輸出身體質量指数(BMI)和建議
# BMI 公式為 bmi = ( 體重 / (身高x身高) ),單位是公斤和米
# 如果 BMI < 18.5,顯示過輕
# 如果 BMI >= 24,顯示過重
# 如果 BMI 界于 18.5 ~ 24,顯示正常

print "请输入您的体重(公斤),然后按 Enter: "
print "請輸入您的體重(公斤),然後按 Enter: "
weight = gets

print "请输入您的身高(厘米),然后按 Enter: "
print "請輸入您的身高(厘米),然後按 Enter: "
height = gets

bmi = (weight.to_f/(height.to_f/100 * height.to_f/100)).round(1)

result =
if bmi < 18.5
"過輕"
elsif
bmi >= 24
"過重"
else
"正常"
end
# .....

puts "您的 BMI 是: _________"
puts "您的 BMI 是: #{bmi}"

puts "您的 BMI 结果是: _________(过轻或正常或过重)"
puts "您的 BMI 结果是: #{result}(過輕或正常或過重)"
19 changes: 17 additions & 2 deletions 06-interger-positive.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,22 @@
print "请输入一个整数,然后按 Enter: "
x = gets

a =
if x.to_i > 0
"正數"
elsif x.to_i == 0
"零"
else
"負數"
end

b=
if x.to_i % 2 == 0
"偶數"
else
"奇數"
end
# ....

puts "这个数是_____ (正数或零或负数)"
puts "这个数是_____ (偶数或奇数)"
puts "這個數是 #{a}"
puts "這個數是 #{b}"
19 changes: 18 additions & 1 deletion 07-abcde.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,23 @@
print "请输入一个整数z,然后按 Enter: "
z = gets

x = x.to_i
y = y.to_i
z = z.to_i

m =
if x < 0
"A"
elsif ( x > 0 ) && ( y > 0 ) && ( z > 0 )
"B"
elsif ( x > 0 ) && ( y > 0 ) && ( z < 0 )
"C"
elsif ( x > 0 ) && ( y < 0 ) && ( z > 0 )
"D"
elsif ( x > 0 ) && ( y < 0 ) && ( z < 0 )
"E"
end

# ....

puts "结果是________(A或B或C或D或E)"
puts "結果是 #{m}"
9 changes: 8 additions & 1 deletion 08-find-max.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@
print "请输入一个数字z,然后按 Enter: "
z = gets

m = 0

[x, y, z].each do |i|
if i.to_f > m
m = i.to_f
end
end
# ....

puts "最大的数是 ________(x或y或z)"
puts "最大的数是 #{m}"
4 changes: 2 additions & 2 deletions 09-function.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 题目: 输入直角三角形的宽和高,输出三角形的面积

def calculate_area(a, b)
# ....
a.to_i * b.to_i / 2
end

print "请输入直角三角形的高,然后按 Enter: "
Expand All @@ -12,4 +12,4 @@ def calculate_area(a, b)

answer = calculate_area(a,b)

puts "直角三角形的面积是: #{answer}"
puts "直角三角形的面积是: #{answer}"
9 changes: 8 additions & 1 deletion 10-function.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# 题目: 使用者输入 x,y,z,请输出三个数中最大的数

def find_max(x, y, z)
m = 0
[x, y, z].each do |i|
if i.to_f > m
m = i.to_f
end
end
return m
end

print "请输入一个数字x,然后按 Enter: "
Expand All @@ -16,4 +23,4 @@ def find_max(x, y, z)

answer = find_max(x,y,z)

puts "最大的数是 #{answer}"
puts "最大的数是 #{answer}"
8 changes: 5 additions & 3 deletions 11-seven.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
i = 1
while ( i <= 100 )

# ....

if i % 7 == 0
puts i
end

i+=1
end
end
8 changes: 5 additions & 3 deletions 12-sum-even.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@

while ( i <= 100 )

# ....

if i % 2 == 0
total = total + i
end

i+=1
end

puts total
puts total
15 changes: 14 additions & 1 deletion 13-nn.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,22 @@
print "请输入数字 N,然后按 Enter: "
n = gets

n = n.to_i
(1..n).each{|i|
(1..i).each{|j|
p = i * j
print j.to_s + '*' + i.to_s + '='
if p.to_s.length == 1 then
print p.to_s + ' '
else
print p.to_s + ' '
end
}
puts ''
}

# while ( ... )
# while ( ...)
#
# end
# end

12 changes: 11 additions & 1 deletion 14-prime.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
# 输入一个数字 N,请检查是不是质数

def is_prime(n)
# ....
i = 2
while i<= n/2

if n % i == 0
return false
break
else
return true
end
i+=1
end
end

print "请输入数字 N,然后按 Enter: "
Expand Down
6 changes: 5 additions & 1 deletion 15-guess-number.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
if n.to_i == target
puts "恭喜猜中啦! "
break
elsif n.to_i < target
puts "太低了,再猜一次"
elsif n.to_i > target
puts "太高了,再猜一次"
end

end
end
10 changes: 8 additions & 2 deletions 16-array-sum.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
# 给定一阵列内含数字,输出最大值

def find_max(array)
#....

m = 0
array.each do |i|
if i > m
m = i
end
end
return m
end

arr = [8, 12, 36, 53, 9, 75, 3, 71, 59, 88]

max = find_max(arr)
puts "Max is #{max}" # 应该是 88

22 changes: 18 additions & 4 deletions 17-array-stats.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,21 @@

puts arr.to_s

puts "总和是 _____"
puts "平均是 _____"
puts "最大值是 _____"
puts "最小值是 _____"
sum = 0
m = n = arr[0]
arr.each do |i|
sum += i
if m < i
m = i
end
if n > i
n = i
end
end

avarage = sum.to_f / arr.size

puts "总和是 #{sum}"
puts "平均是 #{avarage}"
puts "最大值是 #{m}"
puts "最小值是 #{n}"
7 changes: 5 additions & 2 deletions 18-square.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
print "请输入数字 N,然后按 Enter: "
n = gets

# ...
i = 1
for i in 0...n.to_i do
arr << i * i
end

puts arr.to_s
puts arr.to_s
11 changes: 9 additions & 2 deletions 19-filter.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
# 给定一阵列内含数字,输出另一个数组只包含偶数

def filter_even(arr)
#...
arr_even = []

arr.each do |i|
if i % 2 == 0
arr_even.push(i)
end
end
arr_even
end

arr = [7, 68, 42, 46, 9, 91, 77, 46, 86, 1]

puts filter_even(arr).to_s # 应该是 [68, 42, 46, 46, 86]
puts filter_even(arr).to_s # 应该是 [68, 42, 46, 46, 86]
11 changes: 9 additions & 2 deletions 20-sorting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@
# Hint: 可用 arr.sort 排序,和 arr.uniq 去除重复

def filter_even(arr)
#...
arr_even = []

arr.each do |i|
if i % 2 == 0
arr_even.push(i)
end
end
arr_even.sort.uniq
end

arr = [7, 68, 42, 46, 9, 91, 77, 46, 86, 1]


puts "________" # 应该是 [42, 46, 68, 86]
puts "#{filter_even(arr)}" # 应该是 [42, 46, 68, 86]
Loading