2016-04-24 55 views
0

我需要插入,而不是可以被3,「d3」字整除的數字。而不是可以被5,「d5」字整除的數字。我該怎麼做。我在這裏嘗試:如何將數字更改爲Ruby中的單詞?

puts "How many digits do u want to see?"            
number = gets.to_i                  

number.times do |n|                 
     puts "#{n}"                 

     if (n % 3 == 0)                
       puts "d3"                
     elsif (n % 5 == 0)                
       puts "d5"                
     end                   
end                     

如果我輸入數字7的輸出必須是:

1 
2 
d3 
4 
d5 
d3 
7 

但我有不同的輸出,當我輸入數字7:

How many digits do u want to see?              
7                      
0                      
d3                     
1                      
2                      
3                      
d3                     
4                      
5                      
d5                     
6                      
d3 

哪裏是我的錯誤?

+0

被除盡'如果(N%3 == 0) 提出 「D3」 ELSIF(N%5的數的可能性= = 0) 放置「d5」,否則放置「#{n}」結束「 – gordon

+0

它的工作原理。謝謝,但你知道如何刪除0,因爲它顯示我:d3 1 2 d3 4 d5 d3。我如何刪除第一個符號d3? – user3043926

+0

將'number.times'更改爲'(1..number).each'使用範圍,這也是您可以通過google解決方案的fizzbuzz問題 – bjhaid

回答

1

呼叫次數會拋出以下錯誤:

NoMethodError: undefined method `times' for 1..number:Range 

在number.times中使用時間也會從0開始,並在最後一個數字之前結束。這裏是一個可能的解決方案,其還添加了具有由兩個3和5

puts "How many digits do u want to see?" 
number = gets.to_i 

(1..number).each do |n| 
    if (n % 3 == 0 && n % 5 == 0) 
    puts "..." # whatever message you like 
    elsif (n % 3 == 0) 
    puts "d3" 
    elsif (n % 5 == 0) 
    puts "d5" 
    else 
    puts n 
    end 
end 
+0

這就是我需要的。完美15現在顯示d3和d5。做得好。非常感謝。 – user3043926

+0

不客氣@ user3043926 – mokayode

3

這裏:

puts "How many digits do u want to see?" 
number = gets.to_i 

(1..number).each do |n| 
    if (n % 3 == 0 && n % 5 == 0) 
    puts "whatever you need" 
    elsif (n % 3 == 0) 
    puts "d3" 
    elsif (n % 5 == 0) 
    puts "d5" 
    else 
    puts n 
    end 
end 

變化

  1. 條件已更新
  2. 使用範圍1..number跳過一個範圍0
+1

作爲說明,'puts「#{n}」'採用不必要的字符串化。 'puts n'就足夠了,'.to_s'會自動調用。 – tadman

+0

@tadman是的你說得對,謝謝你指出。我已經更新了答案。 – Alfie

+0

是的,如果我們把15放在它的節目d3中,但15可以被3和5整除。 。 – user3043926

相關問題