好的,让我先说是这是功课.但我有答案(玩它直到它工作)我的问题更多关于"如何"让老师多次解释(在线课程),但我只是没有得到它,希望有人在这里更擅长以我对他们的看法来解释事物.
这是作业:
编写一个函数recurPower(base, exp)
,base**exp
通过递归调用自身来解决相同问题的较小版本,然后将结果乘以base
求解初始问题.
此函数应该包含两个值 - base
可以是浮点数或整数; exp
将是≥0的整数.它应该返回一个数值.您的代码必须是递归的 - 使用**
不允许运算符或循环结构.
好吧,经过几次试验和试错后(我的意思是几个小时的变化)我想出了正确的代码,它解决了正确的答案,但我不明白怎么做.
这是代码:
def recurPower(base, exp):
'''
base: int or float.
exp: int >= 0
returns: int or float, base^exp
'''
if exp <= 0:
return 1
return base * recurPower(base, exp - 1)
Run Code Online (Sandbox Code Playgroud)
第一件事是exp = 0然后返回为1的部分....我不明白为什么会有任何回复1.第二是如果代码的最后部分,如果没有循环,exp在哪里下降1 ?
我在Visual Studio 2010中编写了一个Shell扩展.它实现了一个Context Menu Handler和File Icon Handler.
在使用Visual Studio的计算机上,它运行良好.但在其他计算机上,注册MyShellExt.dll失败并显示消息
[窗口标题]
的RegSvr32
[内容]
模块"MyShellExt.dll"无法加载.
确保二进制文件存储在指定的路径中或对其进行调试以检查二进制或从属.DLL文件的问题.
指定的模块无法找到.
[好]
我检查了依赖项,发现以下文件必须与MyShellExt.dll在同一个文件夹中:msvcr100.dll,msvcp100.dll,atl100.dll.
这意味着我应该将这些库包含在我的安装包中.
如何关闭使用这些库?
我写了一个代码,创建了几个线程并启动它.我使用synchronized block锁定了对象的监视器.我希望创建的第一个线程应该锁定对象并完成其工作.然后任何其他对象都可以输入它.
但它没有发生,程序在下面.
class ThreadCreationDemo implements Runnable
{
public void run()
{
synchronized(this)
{
for(int i=0;i<10;i++)
{
System.out.println("i: "+i+" thread: "+Thread.currentThread().getName()+" threadgroup: "+Thread.currentThread().getThreadGroup()+" "+Thread.holdsLock(this));
try {
Thread.sleep(1000);
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
}
public static void main(String args[])
{
Thread t[]=new Thread[5];
for(int i=0;i<5;i++)
{
t[i]=new Thread(new ThreadCreationDemo());
t[i].start();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望结果应该是这样的.
首先,i = 0到9的所有值都打印在一个线程名称下,如线程0,然后是线程1等.
但输出是这样的:
i: 0 thread: Thread-1
i: 0 thread: Thread-3
i: 0 thread: Thread-2
i: 0 thread: Thread-0
i: 0 thread: Thread-4 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 MFT 中删除文件记录,如果我打开原始分区并通过解析 MFT 文件到达所需的文件记录,我就会成功执行此操作。这种方法的问题是,我必须首先锁定卷,以便我可以在任何 MFT 文件记录上写入零,并且如果其他进程持有卷锁定(这是非常有可能的),则由于 Windows 操作系统,写入原始卷会失败限制。
我想到的另一种方法是将“$MFT”作为文件打开,然后对其进行读取和写入。这样我想我就不必锁定音量了。但是,当我尝试通过 createfile winapi 函数打开 $MFT 文件时,即使我以管理员身份运行程序,也会出现“访问被拒绝”错误?
我的问题是如何打开 $MFT 系统文件进行写入和读取?Windows操作系统是否允许系统文件以正常方式读写?如果没有,我还能做什么?
任何帮助,将不胜感激。
我正在尝试使用来查找另一个字符串中子字符串的位置IgnoreCase
。
例:
String str ="aabbssddaa", str2="ab";
str.indexOf(str2);
Run Code Online (Sandbox Code Playgroud)
我想找到不区分大小写的str2的位置。表示str2 =其中任何一个“ ab”,“ Ab”,“ aB”,“ AB”
而且我只想遍历字符串一次。