我无法确定以下代码为什么不产生预期的输出.相反,结果= 272似乎不正确.
/*
*Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
*Find the sum of all the even-valued terms in the sequence which do not exceed four million.
*/
public class Fibonacci
{
public static void main (String[] args)
{
int result = 0;
for(int i=2;i<=33;i++)
{
System.out.println("i:" + fib(i)); …Run Code Online (Sandbox Code Playgroud) 所以上周我在这里为ACM ICPC东南地区发布了一个问题 - > 算法来计算二进制数字范围的1的数量.收到的很好,但仍然没有解决,所以我想为什么不提出我的团队无法解决的另一个问题.
问题.
你的朋友刚刚开了一家新公司,你想看看tehy做得多好.这项业务已经运行了好几天,你的朋友每天都记录了他们的净利润.您希望找到朋友在至少一天的连续时间段内获得的最大总利润.例如,如果您的朋友的利润看起来像这样:
Day 1: -3
Day 2: 4
Day 3: 9
Day 4: -2
Day 5: -5
Day 6: 8
Run Code Online (Sandbox Code Playgroud)
从第2天到第6天,他们在任何跨度上的最大利润为14.
输入输入
中将有几个测试用例.每个测试用例将在其自己的行上以整数N(1 <= N <= 250,000)开始,表示天数.在接下来的N行中,每一行都是一个整数P(-100 <= P <= 100),表示当天的利润.日期按顺序指定.输入将以一个单行0结束输出
对于每个测试用例,输出一个整数,表示任何非空时间跨度的最大利润.在没有空格的情况下在自己的行上打印每个整数.不要在答案之间打印任何木板线.
样本输入
6
-3
4
9
-2
-5
8
2
-100
-19
0
Run Code Online (Sandbox Code Playgroud)
样本输出
14
-19
Run Code Online (Sandbox Code Playgroud)
如果您不担心效率,解决此问题的代码非常简单,但在比赛中解决的唯一方法是O(n!),这是不可接受的.我希望堆栈溢出可以做得更好
祝好运!
编辑
只是为了保持这里更新是完成的代码,解决了O(n)中的这个问题.
import java.util.Scanner;
public class Profits {
public static int seqStart=0, seqEnd=-1;
public static void main(String args[]) {
Scanner s = new Scanner(System.in); …Run Code Online (Sandbox Code Playgroud) 所以我们都知道Kohana 3的文档绝对是可怕的.那么如何构建以下查询,我有"玩家"和"龙"模型?
SELECT * FROM `dragons` JOIN `players` ON (`dragons`.`player_id` = `players`.`player_id`) WHERE `uid` IN (1,2,3) ORDER BY `dragons`.`id` ASC
Run Code Online (Sandbox Code Playgroud)
我可以ORM::factory('dragon')->join("players")->on("dragons.player_id", "=", "players.player_id")用来进入连接部分,但我不能做这个in条款.inKohana 3的ORM 没有功能.我尝试了这个where函数,但它在第三个参数周围加上引号,所以我的ID列表变成了一个字符串,查询变得无效.那我该怎么办?我无法弄清楚如何将自定义的SQL位添加到我的ORM加载查询中.同样,因为文档不存在.
我现在能想到的唯一方法就是加载所有合适的玩家,循环播放它们并获取它们的龙.但这看起来真的很愚蠢 - 比必要的查询更多.我以前觉得这样,使用ORM会在查询结束时使事情变得非常低效,以便使代码更容易编码.这是真的?
他们说协议是一种方法,但它与方法不同.确切地说,它做了什么以及方法和协议之间的区别是什么?
我已经阅读了Apple的"你的第一个iOS应用程序"指南,对我来说,一切都很清楚.但是,当我试图理解XCode中提供的基于视图的iOS应用程序模板如何工作时,我遇到了一些有趣的难题.
我知道应用程序获取主要的nib文件名(通常是MainWindow.xib)形成*-Info.plist文件.我不明白的是,XCode如何知道哪个nib文件与默认情况下使用此基于View的应用程序模板创建的控制器相关联.在本指南中,您将从基于Window的应用程序开始,并且"必须编写"类似于:
MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
Run Code Online (Sandbox Code Playgroud)
这很有道理.然而,事实证明,在基于视图的iOS应用程序模板中没有这样的东西,并且首先实际上并不需要这个nib规范,只要您创建了带有选项"With XIB for user interface"的UIViewController子类"检查.我的问题是,XCode如何知道哪个nib与此控制器相关联,即它是将此连接存储在某些文件中,还是通过某种约定(控制器和nib文件的名称可能相同)?此外,'加载来自MyViewBasedAppController''副标题来自于MainWindow.xib中接口构建器的控制器视图?当我手动添加控制器时,它绝对不存在,所以我很好奇XCode在我背后做了什么魔术,当我想我的时候
我最近开始在我的C++项目中使用Boost并注意到在编译开始之前有相当大的延迟(当我重新构建时,我必须等待5分钟才能开始编译).
我已经运行了Filemon,它向我展示了Visual Studio闲置的所有时间devenv.exe正在通过Boost包含目录进行探测.
任何想法我怎样才能加快编译速度而不会让Boost远离这个项目?
谢谢.
我正在使用XNA 3.1开发3D Spaceship游戏
我试图将我的绘画代码与游戏逻辑分开(altought XNA几乎就是这样).
我正在使用一个特殊的静态类,在屏幕上绘制我的模型......主要的Game类在绘画中使用此代码:
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.Black);
// Draws the stage (the skybox and objects like rocks)
stageManager.Draw(gameTime, GraphicsDevice, camera);
// Draws each player and each Enemy on stage given the camera
foreach (Player p in players)
p.Draw(camera);
foreach(Enemy e in enemies)
e.Draw(camera);
if(Configuration.Debug)
col.renderColBoundings(GraphicsDevice, camera);
GraphicHelper.drawOverlayText("50", "10"); // "Error" line...
base.Draw(gameTime);
}
Run Code Online (Sandbox Code Playgroud)
但是当我画出文字时,会出现一些奇怪的东西......这是一张图片(原创):

正如你所看到的,一切看起来都是重叠的(但在适当的位置)......就像飞船涡轮机一样.
里面的代码GraphicHelper.drawOverlayText是这样的:
public static void drawOverlayText(String p1Hp, String currEnemies)
{
string text1 = "Player1: " + …Run Code Online (Sandbox Code Playgroud) function genEnemy(a) {
//javascript:alert(en[0]+'\n'+genEnemy(en[0])+'\n'+en[0])
with (Math) {
a[1]=round(a[1]*(.5+random()))
a[2]=round(a[2]*(1+random()))
for (var b=0;b<5;b++) a[3][b]=round(a[3][b]*(a[3][b]/2+random()*a[3][b]/10))
for (var b=0;b<a[4].length;b++) random()<it[a[4][b]][3]/10?a[4][b]=0:0
}
return a
}
Run Code Online (Sandbox Code Playgroud)
根据每个敌人阵列的基础生成敌人的统计数据的脚本.(RPG游戏)问题是,当我期望它返回包含新统计数据的数组时,它还将敌人数组设置为新数组.为什么是这样?显然你可以看到问题是如何由此引起的(基础被改变,所以弱小的敌人可以变得更加强大).如何阻止它在en(敌人值数组)中设置数组?
当我为我创建的类调用一个对象的新实例时,我的一个类实例就被覆盖了.为什么会这样?示例如下.
我的课程定义如下:
class my_class:
attribute = ""
examples = []
children = []
d = {}
def __init__(self, attribute, e):
self.attribute = attribute
self.examples = e
for ex in self.examples:
self.d[ex[-1]] = self.d.get(ex[-1], 0) + 1
Run Code Online (Sandbox Code Playgroud)
我正在制作一个初始实例:
root = my_class(some_attribute, data)
Run Code Online (Sandbox Code Playgroud)
然后,我创建另一个实例:
child = my_class(different_attribute, root.examples[somewhere_1:somewhere_2])
Run Code Online (Sandbox Code Playgroud)
最后,我的初始"root"现在与"child"在某种程度上相同,其中"root"应该保持不变.为什么是这样!?
我想在Python中使用"logging"模块将错误写入日志文件.但是,我希望只在出现错误时才创建文件.我使用以下代码:
import logging
f = 'test.conf'
logger = logging.getLogger("test_logger")
logger.setLevel(logging.INFO)
ch_file = logging.FileHandler("test_logger.conf")
ch_file.setLevel(logging.ERROR)
logger.addHandler(ch_file)
ch_file.close()
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.info("info")
logger.warn("warning")
#logger.error("error")
Run Code Online (Sandbox Code Playgroud)
当取消注释logger.error("error")时,我希望文件"test_logger.conf"中包含错误.但是,当该行被注释掉时,我发现test_logger.conf文件仍然是空的.除非有错误报告,否则我怎么能这样做才能生成这个文件?
谢谢.