c# - Kattis 使用 C# 解决 Jumbo Javelin 运行时错误
问题描述
我是 Kattis 的新手,正在尝试使用 C# 解决 Jumbo Javelin 挑战,但即使我以 0 退出程序,我也会遇到运行时错误。
这是我的代码:
using System;
namespace JumboJavelin
{
class Program
{
static void Main(string[] args)
{
int l = int.Parse(Console.ReadLine());
int sum = 0;
int loss = 1;
for (int n = 0; n <= 100; n++)
{
sum += l;
if((n + 1) % 2 == 0 && !n.Equals(0))
{
sum -= ((n + 1) / 2)*loss;
}
try
{
l = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
break;
}
}
Console.WriteLine(sum);
Environment.Exit(0);
}
}
}
有人可以帮帮我吗?我知道我的解决方案最终会输出错误的答案,但现在我正试图摆脱运行时错误,因为它在 Visual Studio 2019 上运行良好。感谢所有帮助。谢谢
解决方案
如果你改变你捕获的错误,Exception
你会发现它实际上是一个错误的答案,所以出了点问题。0
您确实在代码底部使用退出代码退出程序,但是,它会在Exception
其他地方抛出一个。需要考虑两件事:
- 首先,问题陈述解释说,作为第一个输入,您得到一个整数
N
(这N
表示他拥有的钢棒的数量),并且可以介于1
和100
(1
因此不包括在内1<N<=100
)之间。1
您现在有一个始终从到循环的循环100
。并且循环应该从1
最多循环到包括任何值N
。试着看看你能做些什么。 - 其次,您在循环的“尾部”读取输入。这意味着在最后一个循环之后,您将执行另一个读取输入。并且您没有阅读第一个 l。
l
尝试在循环开始时更改读取输入。(并且您在 Main 中读取的第一个输入不应该是 forl
(见第 1 点))。
看看这能让你走多远,有什么不清楚的地方请告诉我。
推荐阅读
- reactjs - 如何为上一个/下一个按钮 ReactJS 创建单独的组件
- python - python在迭代时从集合中删除元素
- html - CSS Parallax 效果:如何仅转换部分的背景?
- android - 2列未对齐的Android回收器视图
- linux - 在 WHM 中创建新的 cPanel 之前是否需要购买域?
- javascript - 如何捕获用于访问网页的浏览器?
- python - PyQT5 中的“闪烁”按钮
- c# - 使用 gRPC 的基于自定义通道的身份验证
- macos - 从 Virtualbox 访问 Docker 容器
- php - 使用 gmail api php 发送邮件