var i;
for ( i = 1; i > 20; i++ ) {
"hello"
if ( i % 3 === 0 ) {
if ( i % 5 === 0 ) {
"FizzBuzz";
}
else {
"Fizz";
}
}
else if ( i % 5 === 0 ) {
"Buzz";
}
else {
i;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图首先测试数字(i)是否可以被3整除.如果是,我想检查它是否也可以被5整除.如果两个条件都是真的,我希望它说"FizzBuzz ".如果只有第一个条件为真,那就应该说"Fizz".然后,在确定i不能被3整除之后,它应该检查我是否可以被5整除并且如果是这样则显示"Buzz".如果没有所有的可分性,它应该只显示数字.
正如我所料......它没有按预期工作.我犯了什么非常令人尴尬的错误?
我刚开始学习python作为我的第一语言,虽然我为fizzbuzz制定了代码,但我不能为我的生活做下面的项目.我也希望它水平打印而不是垂直打印.任何帮助都会很棒(头脑旋转).创建一个执行此操作的函数.例如
fizzbuzz(20)
Run Code Online (Sandbox Code Playgroud)
会打印
1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,17,fizz,19,buzz
def fizzbuzz(n):
for x in range (101):
if x%3==0 and x%5==0:
print("fizz buzz")
elif x%3==0:
print('fizz')
elif x%5==0:
print('buzz')
else:
print (x)
def main():
print(fizzbuzz(20))
Run Code Online (Sandbox Code Playgroud) 以下显然不起作用:
fn main() {
for i in range(1i, 101) {
println!("{}", if i % 15 == 0 {
"Fizzbuzz"
} else if i % 5 == 0 {
"Buzz"
} else if i % 3 == 0 {
"Fizz"
} else {
i
});
};
}
Run Code Online (Sandbox Code Playgroud)
它可以像这样工作:
fn main() {
for i in range(1i, 101) {
println!("{}", if i % 15 == 0 {
"Fizzbuzz".to_string()
} else if i % 5 == 0 {
"Buzz".to_string()
} else if i % …Run Code Online (Sandbox Code Playgroud) 好吧,这真的不是一个fizzbuzz问题,因为它是一个C问题.
我在C中写了一些简单的代码,用于根据需要打印出fizzbuzz.
#include <stdio.h>
int main(void)
{
int n = 30;
int i;
for (i = 1; i<=n; i++)
printf("%s\n", (i % 15) == 0 ? "fizzbuzz" : (i % 5) == 0 ? "buzz" : (i % 3) == 0 ? "fizz" : i);
}
Run Code Online (Sandbox Code Playgroud)
现在,最后一个else语句显然不起作用,因为printf接受一个字符串,而'i'是一个int.我的问题是,是否有任何类型的演员可以应用于将'i'转换为字符串?
编辑:我应该提一下,我真正想问的是,如果这个fizzbuzz测试可以使用单个print语句完成.没有什么特别的原因,我希望它只是一个单独的打印声明,而不是好奇是否可以完成.
EDIT2:问题已回答,这是我的实施:
#include <stdio.h>
int main(void)
{
int i, n=30;
for (i = 1; i<=n; i++)
printf((!(i%3) || !(i%5)) ? "%s\n" : "%d\n", !(i % 15) ? "fizzbuzz" : !(i % 5) ? …Run Code Online (Sandbox Code Playgroud) 在学习 Python 时,我正在处理一些不同的 fizz buzz 脚本。我遇到了这个效果很好但我无法破译它是如何工作的。我知道正常的 fizz 嗡嗡声如何与 for 循环和“if i % 3 == 0 and i % 5 == 0”一起使用。让我难倒的是“Fizz”(不是 i%3)+“ Buzz ” (不是 i%5)是如何工作的。
x = ["Fizz"*(not i%3) + "Buzz"*(not i%5) or i for i in range(1, 100)]
Run Code Online (Sandbox Code Playgroud) 我有一个关于这个程序的问题,它说:FizzBuzz 挑战:显示从 1 到 x 的数字,将 3 的倍数替换为“fizz”,5 的倍数替换为“buzz”,3 和 3 的倍数替换为“fizzbuzz” 5. 结果必须是:1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 ...
所以我的问题是在打印输出的时候,我不知道该怎么办。
public class Multiplos {
public static void main(String args[]) {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
System.out.print(i + " ");
System.out.print(" fizz ");
}
if (i % 5 == 0) {
System.out.print(" " + i);
System.out.print(" " …Run Code Online (Sandbox Code Playgroud) 我已经花了几个小时学习C,并且想尝试一下Fizzbizz程序来测试我的知识.
这是我写的代码:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <21; i++) {
if (i % 3 == 0) {
if (i % 5 == 0) {
printf("Fizzbuzz\n");
}
else {
printf("Fizz\n");
}
}
elseif (i % 5 == 0) {
if (i % 3 == 0) {
printf("Fizzbuzz\n");
}
else {
printf("Buzz\n");
}
}
else {
printf("%d", i);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是编译器返回
在函数'main'中:第14行:错误:预期';' 在'{'之前
我怀疑错误是非常微不足道的,但你能解释为什么它不起作用,如果我至少得到了正确的想法?
在上周的"用C编程"中期,最后一个问题是编写一个程序来打印1到100的数字列表,但每3个打印嘶嘶声,5个嗡嗡声的多个,以及3个和5个打印fizzbuzz的倍数.刚得到我的成绩我得到了76%,我确信我还有其他问题,所以我的代码中一定有错误.我试图解决它(不记得我在纸上写的东西)我的问题是我基本上有它工作,但它也打印数字,数字应该被替换为单词.这是我到目前为止的代码.
#include <stdio.h>
int main (void)
{
int x,y;
printf("this should count from 1 to 100, and instead of printing the multiples of 3 or 5 or 3 and 5 it should print words\n");
for (x=1; x<=100; x++)
{
if (x%3==0)
{
printf("fizz\n");
}
if (x%5==0)
{
printf("buzz\n");
}
if (x%3==0 && x%5==0)
{
printf("FizzBuzz\n");
}
printf("%d\n",x);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我实际上并没有"重新接受"测试或类似的事情所以我不是在试图作弊,我只是对这里需要做的事感到困惑.我得到的输出是
1
2
fizz
3
4
buzz
5
fizz
6
7
8
fizz
9
buzz
10
11
fizz
12 …Run Code Online (Sandbox Code Playgroud) 我刚刚在Perl中编写了一个简单的fizzbuzz程序:
#!/usr/bin/perl
for $a (1..100) {
print ($a%15 ? ($a%3 ? ($a%5 ? $a : "buzz") : "fizz") : "fizzbuzz") . $/;
}
Run Code Online (Sandbox Code Playgroud)
它有点工作,但由于某种原因,我没有在输出中得到任何换行符:
12fizz4buzzfizz78fizzbuzz11fizz1314fizzbuzz1617fizz19buzzfizz2223fizzbuzz26...
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过print $/;在循环结束时作为单独的语句添加来修复,但我无法弄清楚为什么这是必要的.
我究竟做错了什么?
我已经编写了经典的 fizzbuzz 代码。
规格:
describe "can determine fizzbuxx output for" do
it "3" do
expect(Fizzbuzz.nums(3)).to eq "123fizz"
end
end
Run Code Online (Sandbox Code Playgroud)
代码:
class Fizzbuzz
def self.nums(n)
result=""
(1..n).each do |inner|
puts "inner #{inner}"
result << inner
if (inner % 3)==0
result << 'fizz'
end
if (inner % 5)==0
result << 'buzz'
end
end
result
end
end
Run Code Online (Sandbox Code Playgroud)
为什么我得到\u001...而不是1?
Failures:
1) can determine fizzbuxx output for 3
Failure/Error: expect(Fizzbuzz.nums(3)).to eq "123fizz"
expected: "123fizz"
got: "\u0001\u0002\u0003fizz"
(compared using ==)
# ./fizzbuzz_spec.rb:5:in …Run Code Online (Sandbox Code Playgroud)