我正在努力找出老的FizzBuzz挑战。我理解了FizzBuzz部分背后的逻辑(打印Fizz表示可被3整除的数字、用于数字可被5整除的Buzz以及可被两者整除的数字的FizzBuzz )。
指令:
玩家一般坐在一个圆圈里。第一个玩家说数字“1”,每个玩家依次说下一个号码。但是,任何可被X整除的数字(例如,3)都由单词fizz代替,任何可被Y整除的数(例如,5)都被单词buzz所取代。可被两者整除的数字就成了嗡嗡的嗡嗡声。犹豫不决或犯错误的球员将被淘汰出局。编写一个程序,打印出最后一系列的数字,其中,那些可被X,Y和两者都替换为“F”代表fizz,“B”代表巴斯和“FB”代表蜂鸣。
输入示例:您的程序应该接受文件作为其第一个参数。该文件包含多个分隔行;每一行包含3个以空格分隔的数字。第一个数字是第一个除数器(X),第二个数字是第二个除数器(Y),第三个数字是你应该计算(N)的距离。您可以假设输入文件的格式是正确的,并且数字是有效的正整数。
例如:3 5 10 2 7 15
输出示例:打印系列1到N,用“F”替换可被X整除的数字,用“B”替换可被Y整除的数字,用“FB”替换可被两者整除的数字。由于输入文件包含多组值,您的输出应该打印出每组一行。确保在打印的每一行中都没有尾随空位。
1 2法4 B法7 8法1法3法5法B 9法11法13 FB 15
制约因素:
·测试用例的数量≤20
* "X“在1、20范围内
·"Y“在1、20范围内
·"N“在21,100范围内
我不是在找人为我做这个,只是帮助我更好地理解我是如何阅读文本文件。如果这是个“愚蠢”的问题,我很抱歉。我研究过微软的开发网络页面以求澄清,但这让我更加困惑.谢谢。
发布于 2016-07-15 23:56:29
标准输出(stdout)只是常规控制台输出;
要发送一些东西给它,只需做Console.WriteLine。
发送到stderr Console.Error.WriteLine,但这不是质询所要求的。
CodeEval上的挑战不要求您从stdin输入任何内容,只需从主方法的第一个参数中获取文件名:
public static void Main(string[] args)
{
var fileContent = File.ReadAllText(args[0]);
}如果您必须有效地从stdin中读取数据,则只需使用Console.ReadLine即可。
string line;
while ((line = Console.ReadLine()) != null)
{
// Do whatever you need to do with the line variable read from the stdin.
}或与您提供的代码集成:
using (var reader = new StreamReader(Console.OpenStandardInput()))
{
Console.WriteLine(FizzBuzz.ParseInput(reader));
}另外,如果只需要解析文本,还可以选择另一个选项:Console.In
https://stackoverflow.com/questions/38406397
复制相似问题